java实现一次性压缩多个文件到zip中的方法示例
本文实例讲述了java实现一次性压缩多个文件到zip中的方法。分享给大家供大家参考,具体如下:
1.需要引入包:
importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.IOException; importjava.util.ArrayList; importjava.util.List; importjava.util.zip.ZipEntry; importjava.util.zip.ZipOutputStream; importorg.springframework.util.StringUtils;
2.代码
/** *@Title:compress *@Description:TODO *@paramfilePaths需要压缩的文件地址列表(绝对路径) *@paramzipFilePath需要压缩到哪个zip文件(无需创建这样一个zip,只需要指定一个全路径) *@paramkeepDirStructure压缩后目录是否保持原目录结构 *@throwsIOException *@returnint压缩成功的文件个数 */ publicstaticintcompress(ListfilePaths,StringzipFilePath,BooleankeepDirStructure)throwsIOException{ byte[]buf=newbyte[1024]; FilezipFile=newFile(zipFilePath); //zip文件不存在,则创建文件,用于压缩 if(!zipFile.exists()) zipFile.createNewFile(); intfileCount=0;//记录压缩了几个文件? try{ ZipOutputStreamzos=newZipOutputStream(newFileOutputStream(zipFile)); for(inti=0;i 0){ zos.write(buf,0,len); } zos.closeEntry(); fis.close(); fileCount++; } zos.close(); //System.out.println("压缩完成"); }catch(Exceptione){ e.printStackTrace(); } returnfileCount; }
3.测试
publicstaticvoidmain(String[]args)throwsIOException{ ListsourceFilePaths=newArrayList (); sourceFilePaths.add("d:/test/C08065.jpg"); sourceFilePaths.add("d:/test/新建文件夹/C08984.jpg"); sourceFilePaths.add("d:/test/找不到我.jpg");//试一个找不到的文件 //指定打包到哪个zip(绝对路径) StringzipTempFilePath="D:/test/test.zip"; //调用压缩 ints=compress(sourceFilePaths,zipTempFilePath,false); System.out.println("成功压缩"+s+"个文件"); }
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。