java实现将多个文件打包成zip

来源:互联网 发布:在淘宝上怎么分期付款 编辑:程序博客网 时间:2024/05/23 19:20
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;}}


原创粉丝点击