PackageCom.asia.test.TestZipFiles;ImportJava.io.BufferedInputStream;ImportJava.io.File;ImportJava.io.FileInputStream;ImportJava.io.FileOutputStream;Importjava.util.zip.CRC32;ImportJava.util.zip.CheckedOutputStream;ImportOrg.apache.tools.zip.ZipEntry;ImportOrg.apache.tools.zip.ZipOutputStream; Public classZipfiles { Public Static voidMain (String arg[]) {Compress ("E:\\test", "e:\\testzip\\");}Static Final intBUFFER = 2048; Public Static voidCompress (String filepath,string zippath) {File Filedir=NewFile (FilePath); file[] Files=filedir.listfiles ();if(!filedir.exists ())Throw NewRuntimeException (FilePath + "does not exist! ");Try {intK = FILES.LENGTH/10; for(inti=0;i<=k;i++) {File ZipFile=NULL;if(i<10) {ZipFile=NewFile (zippath+ "Testzip_0" +i+ ". zip");} Else{ZipFile=NewFile (zippath+ "Testzip_" +i+ ". zip");} FileOutputStream FileOutputStream=NewFileOutputStream (ZipFile); Checkedoutputstream Cos=NewCheckedoutputstream (FileOutputStream,NewCRC32 ()); Zipoutputstream out=Newzipoutputstream (COS); String Basedir= "";if(i!=k) { for(intj = i*10; J < (i+1) *10; J + +{compressfile (files[j], out);}} Else { for(intj = k*10; J < Files.length; J + +) {compressfile (files[j], out); }}out.close ();}} Catch(Exception e) {Throw NewRuntimeException (e);}}/**Compress a file*/Private Static voidcompressfile (file file, zipoutputstream out) {if(!file.exists ()) {return;}Try{Bufferedinputstream bis=NewBufferedinputstream (Newfileinputstream (file)); ZipEntry entry=NewZipEntry (File.getname ()); Out.putnextentry (entry);intcount;byteData[] =New byte[BUFFER]; while(count = bis.read (data, 0, BUFFER))! =-1) {out.write (data,0, count);} Bis.close ();} Catch(Exception e) {Throw NewRuntimeException (e); }}
Compress files in a directory to multiple packages