里有Java如何实现压缩与解压压缩文件

  介绍

里有Java如何实现压缩与解压压缩文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Java解压缩zip -多个文件(包括文件夹),对多个文件和文件夹进行压缩,对复杂的文件目录进行解压。压缩方法使用的是可变参数,可以压缩1到多个文件. .可以写数组的方式或者一个个写到参数列表里面……

 ZipFiles (zip,“abc",新文件(“d:/English"),新文件(“d:/发放数据.xls"));

测试文件目录结构:,

里有Java如何实现压缩与解压压缩文件

测试的压缩内容:英语文件夹和同级的两个excel文件

文件[]文件=新文件[]{新文件(“d:/English"),新文件(“d:/发放数据.xls"),新文件(“d:/中文名称.xls")};

下面是压缩的代码:

/* *
  *解压到指定目录
  * @param zipPath
  * @param descDir
  *
  */zipPath公共静态孔隙unZipFiles(字符串,字符串descDir)抛出IOException {
  unZipFiles(新文件(zipPath)、descDir);
  }/* *
  *解压文件到指定目录
  * @param zipFile
  * @param descDir
  *
  */@SuppressWarnings (“rawtypes")
  公共静态孔隙unZipFiles(文件zipFile字符串descDir)抛出IOException {
  文件pathFile=新文件(descDir);
  如果(! pathFile.exists ()) {
  pathFile.mkdirs ();
  }
  ZipFile邮政=new ZipFile (ZipFile);
  (枚举项=zip.getEntries (); entries.hasMoreElements ();) {
  ZipEntry入口=(ZipEntry) entries.nextElement ();
  字符串zipEntryName=entry.getName ();
  InputStream的=zip.getInputStream(入口);
  字符串outPath=(descDir + zipEntryName) .replaceAll (“\ \ *”,“/?;;//判断路径是否存在,不存在则创建文件路径
  文件文件=新文件(outPath。substring (0, outPath.lastIndexOf (& # 39;/& # 39;)));
  如果(! file.exists ()) {
  file.mkdirs ();
  }//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
  如果(新文件(outPath) .isDirectory ()) {
  继续;
  }//输出文件路径信息
  System.out.println (outPath);
  
  OutputStream=新FileOutputStream (outPath);
  byte[]来=新字节[1024];
  int len;
  在((len=in.read(来)在0){
  out.write(来,0,len);
  }
  in.close ();
  out.close ();
  }
  System.out.println(“* * * * * * * * * * * * * * * * * *解压完毕* * * * * * * * * * * * * * * * * * * *“);
  }

解压的时候,针对文件夹判断创建不存在的文件夹,对文件夹只创建,不进行解压. .因为解压是针对文件的,不是文件夹,文件夹需要自己创建。

里有Java如何实现压缩与解压压缩文件