zoukankan      html  css  js  c++  java
  • java 解压文件

    package ofd;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.nio.charset.Charset;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    
    public class Ofd {
    
        public static void main(String[] args) {
          // 文件存放位置zip rar尚未测试
            String zipPath = "C:\Users\Gean_2016\Desktop\ofd\3.ofd";
            File zipFile = new File(zipPath);
            String descDir = "C:\Users\Gean_2016\Desktop\ofd123\3\";
            boolean flag = unZip(zipFile, descDir);
            System.out.println("解压成功还是失败=" + flag);
        }
        /**
         * 解压zip文件
         * 
         * @param zipFile目标文件
         * @param descDir解压后存放的位置
         * @return true/false
         */
        public static boolean unZip(File zipFile, String descDir) {
            boolean flag = false;
            File pathFile = new File(descDir);
            if (!pathFile.exists()) {
                pathFile.mkdirs();
            }
            ZipFile zip = null;
            try {
                // 指定编码,否则压缩包里面不能有中文目录
                zip = new ZipFile(zipFile, Charset.forName("gbk"));
                for (Enumeration entries = zip.entries(); entries.hasMoreElements();) {
                    ZipEntry entry = (ZipEntry) entries.nextElement();
                    String zipEntryName = entry.getName();
                    InputStream in = zip.getInputStream(entry);
                    String outPath = (descDir + zipEntryName).replace("/",File.separator);
                    // 判断路径是否存在,不存在则创建文件路径
                    File file = new File(outPath.substring(0,
                            outPath.lastIndexOf(File.separator)));
                    if (!file.exists()) {
                        file.mkdirs();
                    }
                    // 判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
                    if (new File(outPath).isDirectory()) {
                        continue;
                    }
    
                    OutputStream out = new FileOutputStream(outPath);
                    byte[] buf1 = new byte[2048];
                    int len;
                    while ((len = in.read(buf1)) > 0) {
                        out.write(buf1, 0, len);
                    }
                    in.close();
                    out.close();
                }
                flag = true;
                // 必须关闭,否则无法删除该zip文件
                zip.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return flag;
        }
    
    }
  • 相关阅读:
    Django REST framework+Vue 打造生鲜超市(十一)
    Django REST framework+Vue 打造生鲜超市(十)
    Django REST framework+Vue 打造生鲜超市(九)
    Django REST framework+Vue 打造生鲜超市(八)
    SVN服务器搭建和使用(二)
    SVN服务器搭建和使用(一)
    web前端性能优化
    js数组去重
    常见的字符串隐式转换
    js中this的用法
  • 原文地址:https://www.cnblogs.com/ljc1212/p/13879869.html
Copyright © 2011-2022 走看看