一、說(shuō)明
rar格局的緊縮包收費(fèi),java支撐zip格局的緊縮和解壓
二、東西類(lèi)
importjava.io.*;importjava.util.Enumeration;importjava.util.List;importjava.util.zip.ZipEntry;importjava.util.zip.ZipFile;importjava.util.zip.ZipOutputStream;publicclassZipUtils{privatestaticfinalintBUFFER_SIZE=2*1024;/**
*zip解壓
*@paramsrcFilezip源文件
*@paramdestDirPath解壓后的方針文件夾
*@throwsRuntimeException解壓失利會(huì)拋出運(yùn)行時(shí)反常
*/publicstaticvoidunZip(FilesrcFile,StringdestDirPath)throwsRuntimeException{longstart=System.currentTimeMillis();//判別源文件是否存在if(!srcFile.exists()){thrownewRuntimeException(srcFile.getPath()+”所指文件不存在”);
}//開(kāi)始解壓ZipFilezipFile=null;try{
zipFile=newZipFile(srcFile);
Enumerationentries=zipFile.entries();while(entries.hasMoreElements()){
ZipEntryentry=(ZipEntry)entries.nextElement();
System.out.println(“解壓”+entry.getName());//如果是文件夾,就創(chuàng)立個(gè)文件夾if(entry.isDirectory()){
StringdirPath=destDirPath+”/”+entry.getName();
Filedir=newFile(dirPath);
dir.mkdirs();
}else{//如果是文件,就先創(chuàng)立一個(gè)文件,然后用io流把內(nèi)容copy曩昔FiletargetFile=newFile(destDirPath+”/”+entry.getName());//確保這個(gè)文件的父文件夾必需要存在if(!targetFile.getParentFile().exists()){
targetFile.getParentFile().mkdirs();
}
targetFile.createNewFile();//將緊縮文件內(nèi)容寫(xiě)入到這個(gè)文件中InputStreamis=zipFile.getInputStream(entry);
FileOutputStreamfos=newFileOutputStream(targetFile);intlen;byte[]buf=newbyte[BUFFER_SIZE];while((len=is.read(buf))!=-1){
fos.write(buf,0,len);
}//關(guān)流次序,先打開(kāi)的后封閉fos.close();
is.close();
}
}longend=System.currentTimeMillis();
System.out.println(“解壓完成,耗時(shí):”+(end-start)+”ms”);
}catch(Exceptione){thrownewRuntimeException(“unziperrorfromZipUtils”,e);
}finally{if(zipFile!=null){try{
zipFile.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}/**
*緊縮成ZIP辦法
*@paramsrcFiles需要緊縮的文件列表
*@paramout緊縮文件輸出流
*@throwsRuntimeException緊縮失利會(huì)拋出運(yùn)行時(shí)反常
*/publicstaticvoidtoZip(ListsrcFiles,OutputStreamout)throwsException{longstart=System.currentTimeMillis();
ZipOutputStreamzos=null;try{
zos=newZipOutputStream(out);for(FilesrcFile:srcFiles){byte[]buf=newbyte[BUFFER_SIZE];
zos.putNextEntry(newZipEntry(srcFile.getName()));intlen;
FileInputStreamin=newFileInputStream(srcFile);while((len=in.read(buf))!=-1){
zos.write(buf,0,len);
}
zos.closeEntry();
in.close();
}longend=System.currentTimeMillis();
System.out.println(“緊縮完成,耗時(shí):”+(end-start)+”ms”);
}catch(Exceptione){thrownewRuntimeException(“ziperrorfromZipUtils”,e);
}finally{if(zos!=null){try{
zos.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
三、使用東西類(lèi)緊縮和解壓文件
importcom.szfore.utils.ZipUtils;importjava.io.File;importjava.io.FileOutputStream;importjava.io.OutputStream;importjava.util.ArrayList;importjava.util.List;publicclassTestZip{publicstaticvoidmain(String[]args)throwsException{//testToZip();testUnzip();
}/**
*測(cè)試緊縮文件
*/publicstaticvoidtestToZip()throwsException{
Filefile1=newFile(“c:\\1.txt”);
Filefile2=newFile(“c:\\2.txt”);
Listfiles=newArrayList();
files.add(file1);
files.add(file2);
OutputStreamout=newFileOutputStream(“c:\\1.zip”);
ZipUtils.toZip(files,out);
}/**
*測(cè)試解壓文件
*@throwsException
*/publicstaticvoidtestUnzip()throwsException{
FilesrcFile=newFile(“c:\\2.zip”);
StringdestDirPath=”c:\\”;
ZipUtils.unZip(srcFile,destDirPath);
}
}
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢(xún)專(zhuān)線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專(zhuān)線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話(huà)/ (+86 0731)88282200
品牌服務(wù)專(zhuān)線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)