Java实现压缩与解压缩ZIP importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.util.zip.ZipEntry; importjava.util.zip.ZipOutputStream; publicclassZip{ staticfinalintBUFFER=2048; publicstaticvoidmain(Stringargv[]){ try{ BufferedInputStreamorigin=null; FileOutputStreamdest=newFileOutputStream("E:\\test\\myfiles.zip"); ZipOutputStreamout=newZipOutputStream(newBufferedOutputStream( dest)); bytedata[]=newbyte[BUFFER]; Filef=newFile("e:\\test\\a\\"); Filefiles[]=f.listFiles(); for(inti=0;i<files.length;i++){ FileInputStreamfi=newFileInputStream(files[i]); origin=newBufferedInputStream(fi,BUFFER); ZipEntryentry=newZipEntry(files[i].getName()); out.putNextEntry(entry); intcount; while((count=origin.read(data,0,BUFFER))!=-1){ out.write(data,0,count); } origin.close(); } out.close(); }catch(Exceptione){ e.printStackTrace(); } } } 解压缩的 importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileOutputStream; importjava.util.Enumeration; importjava.util.zip.ZipEntry; importjava.util.zip.ZipFile; publicclassUnZip{ staticfinalintBUFFER=2048; publicstaticvoidmain(Stringargv[]){ try{ StringfileName="E:\\test\\myfiles.zip"; StringfilePath="E:\\test\\"; ZipFilezipFile=newZipFile(fileName); Enumerationemu=zipFile.entries(); inti=0; while(emu.hasMoreElements()){ ZipEntryentry=(ZipEntry)emu.nextElement(); //会把目录作为一个file读出一次,所以只建立目录就可以,之下的文件还会被迭代到。
if(entry.isDirectory()) { newFile(filePath+entry.getName()).mkdirs(); continue; } BufferedInputStreambis=newBufferedInputStream(zipFile.getInputStream(entry));
1