java实现将多个文件打包成zip
2013-04-27 13:58
459 查看
import java.util.List; import java.util.zip.*; import java.io.*; public class ZipCommand { private static int ziplevel = 7; private File sourceFile = null; private File zipFile = null; private ZipOutputStream jos = null; private ZipEntry sourEntry = null; private String zipfileName = null; private String sourceFileName = null; private static byte[] buf = new byte[1024]; public static void main(String[] s){ ZipCommand tz = new ZipCommand(); //System.out.println( tz.AddtoZip("E:/cis-2000/document/CPoPUserSManual_CPoP_User_s_Manual.doc")); } public String AddtoZip(List sourcefilelist){ if(sourcefilelist == null || sourcefilelist.size()<1){ return null; } sourceFile = new File(sourcefilelist.get(0).toString()); if(!sourceFile.isFile()){ return null; }else{ sourceFileName = sourceFile.getName(); this.setZipfileName(sourceFileName.substring(0,sourceFileName.lastIndexOf("."))+".zip"); try{ zipFile = new File(sourceFile.getParent(),this.getZipfileName()); if(zipFile.exists()){ int i = 1 ; while(true){ zipFile = new File(sourceFile.getParent(),this.getZipfileName().substring(0, getZipfileName().lastIndexOf(".zip")) + i + ".zip"); if(!zipFile.exists()) break ; i++ ; } } //System.out.println(zipFile.getPath()); if(zipFile.exists()){ zipFile.deleteOnExit(); } zipFile.createNewFile(); jos = new ZipOutputStream(new FileOutputStream(zipFile)); jos.setLevel(ziplevel); for(int i=0;i<sourcefilelist.size();i++){ Stzip(jos,new File(sourcefilelist.get(i).toString())); } jos.finish(); }catch(Exception e){ return null; } if(zipFile !=null) return zipFile.getPath(); else{ return null; } } } private void Stzip(ZipOutputStream jos, File file) throws IOException, FileNotFoundException { sourEntry= new ZipEntry(file.getName()); FileInputStream fin = new FileInputStream(file); BufferedInputStream in = new BufferedInputStream(fin); jos.putNextEntry(sourEntry); int len; while ((len = in.read(buf)) >= 0) jos.write(buf, 0, len); in.close(); jos.closeEntry(); } public File getSourceFile() { return sourceFile; } public void setSourceFile(File sourceFile) { this.sourceFile = sourceFile; } public String getZipfileName() { return zipfileName; } public void setZipfileName(String zipfileName) { this.zipfileName = zipfileName; } }
相关文章推荐
- java 实现多个文件打包成zip的功能
- java实现多文件打包成zip
- java实现服务器文件打包zip并下载的示例(边打包边下载)
- Java实现文件自动打包成zip并下载的代码
- java实现将多个文件打包成zip压缩文件以及对压缩文件的加密
- java实现阿里OSS服务器多文件打包ZIP下载,批量下载
- Java实现文件自动打包成zip并下载的代码
- java实现文件自动打包成zip并下载…
- 【Java】Java实现批量打包文件Zip下载
- java实现word下载及打包成zip下载(单个文件、多个文件)
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
- java (jdk+ant.jar包)方式实现zip打包。
- java实现zip压缩文件/文件夹
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- 【Java】Java批量文件打包下载zip
- java中如何实现文件打包上传以及自动解压
- Java实现Zip压缩文件并可以下载
- JAVA文件打包ZIP
- java将文件打包成ZIP压缩文件的工具类实例
- Java 实现文件批量文件打包下载