介绍
里有Java如何实现压缩与解压压缩文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Java解压缩zip -多个文件(包括文件夹),对多个文件和文件夹进行压缩,对复杂的文件目录进行解压。压缩方法使用的是可变参数,可以压缩1到多个文件. .可以写数组的方式或者一个个写到参数列表里面……
ZipFiles (zip,“abc",新文件(“d:/English"),新文件(“d:/发放数据.xls"));
测试文件目录结构:,
测试的压缩内容:英语文件夹和同级的两个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(“* * * * * * * * * * * * * * * * * *解压完毕* * * * * * * * * * * * * * * * * * * *“); }
解压的时候,针对文件夹判断创建不存在的文件夹,对文件夹只创建,不进行解压. .因为解压是针对文件的,不是文件夹,文件夹需要自己创建。