• 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;
        }
    
    }
  • 相关阅读:
    计算机网络技术-IOS和VRP 学习笔记
    计算机网络技术-OSI和TCP/IP学习笔记
    软件安装-Typora安装
    python 根据车牌信息,分析出各省的车牌持有量
    python 判断一个三位数是不是水仙花数
    python基础 day7 基础数据类型补充、编码的进一步认识
    浅谈对深浅copy的个人理解(小白的理解,轻喷)
    python基础 day6 id和is、代码块、集合、深浅拷贝
    python基础 day5 字典
    python基础 day4 列表、元组、range
  • 原文地址:https://www.cnblogs.com/ljc1212/p/13879869.html
Copyright © 2020-2023  润新知