【从本人QQ空间迁移】输入输出流解压zip

   /*unzip解压函数*/
   public static void unzip(String zipFilePath, String unzipDirectory){
   File file = new File(zipFilePath);
   ZipFile zipFile = new ZipFile(file);
   // 创建本zip文件解压目录
   File unzipFile = new File(unzipDirectory);
   if (unzipFile.exists())
   unzipFile.delete();
   unzipFile.mkdir();
   // 得到zip文件条目枚举对象
   Enumeration zipEnum = zipFile.getEntries();
   // 定义输入输出流对象
   InputStream input = null;
   OutputStream output = null;
   // 定义对象
   ZipEntry entry = null;
   // 循环读取条目
   while (zipEnum.hasMoreElements()) {
    // 得到当前条目
    entry = (ZipEntry) zipEnum.nextElement();
    String entryName = new String(entry.getName());
    // 用/分隔条目名称
    String names[] = entryName.split("\\/");
    int length = names.length;
    String path = unzipFile.getAbsolutePath();
    for (int v = 0; v < length; v++) {
     if (v < length - 1) { // 最后一个目录之前的目录
      path += "/" + names[v] + "/";
      createDir(path);
     } else { // 最后一个
      if (entryName.endsWith("/")) // 为目录,则创建文件夹
       createDir(unzipFile.getAbsolutePath() + "/" + entryName);
      else { // 为文件,则输出到文件
       input = zipFile.getInputStream(entry);
       output = new FileOutputStream(new File(unzipFile.getAbsolutePath()+ "/" + entryName));
       byte[] buffer = new byte[1024 * 8];
       int readLen = 0;
       while ((readLen = input.read(buffer, 0, 1024 * 8)) != -1)
        output.write(buffer, 0, readLen);
       input.close();
       output.flush();
       output.close();
      }
     }
    }
   }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值