资源描述:
《Java实现任意文件及文件夹压缩和解压功能.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java实现任意文件及文件夹压缩和解压功能-/*主程序部分*/importjava.io.File;importjava.io.IOException;publicclassZipExample{publicstaticvoidmain(String[]args)throwsIOException{/***解压文件****///FileinFile=newFile("testzip.zip");//FileoutFile=newFile("out");//ZipTool.unzip(inFile,outFil
2、e);///**压缩文件及目录**/File[]files={newFile("a"),newFile("document"),newFile("lib"),newFile("t3.text")};FiletargetFile=newFile("testzip.zip");ZipTool.zip(files,targetFile);}}/*工具类部分*/importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundExce
3、ption;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Enumeration;importjava.util.LinkedList;importjava.util.List;importorg.apache.tools.zip.ZipEntry;importo
4、rg.apache.tools.zip.ZipFile;importorg.apache.tools.zip.ZipOutputStream;publicclassZipTool{/****解压文件*@throwsIOException*****/publicstaticvoidunzip(FileinFile,FileoutFile)throwsIOException{ZipFilezipFile=newZipFile(inFile,"GBK");Enumerationem=zipFil
5、e.getEntries();byte[]buf=newbyte[1024*1024];while(em.hasMoreElements()){ZipEntryze=em.nextElement();FileoutItemFile=newFile(outFile,ze.getName());if(ze.isDirectory()){outItemFile.mkdirs();}else{InputStreamis=zipFile.getInputStream(ze);try{outFile(outItemFil
6、e,is,buf);}finally{is.close();}}}}privatestaticvoidoutFile(FileoutItemFile,InputStreamis,byte[]buf)throwsIOException{outItemFile.getParentFile().mkdirs();FileOutputStreamfos=newFileOutputStream(outItemFile);try{intlen;while((len=is.read(buf))!=-1){fos.write
7、(buf,0,len);}}finally{fos.close();}}/****压缩文件*****/publicstaticvoidzip(File[]files,FiletargetFile)throwsIOException{files=toAbs(files);//StringparentPath=files[0].getAbsoluteFile().getParent();targetFile=targetFile.getAbsoluteFile();//得到绝对路径StringparentPath
8、=files[0].getParent()+"\";//得到父路径//System.out.println(targetFile);//System.out.println(files[0].toString().replace(parentPath,""));files=eachFiles(files);ZipOutputStreamzos=newZipOutputStream(targetFi