一、说明
rar格局的紧缩包收费,java支撑zip格局的紧缩和解压
二、东西类
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解压失利会抛出运行时反常
*/publicstaticvoidunZip(FilesrcFile,StringdestDirPath)throwsRuntimeException{longstart=System.currentTimeMillis();//判别源文件是否存在if(!srcFile.exists()){thrownewRuntimeException(srcFile.getPath()+”所指文件不存在”);
}//开始解压ZipFilezipFile=null;try{
zipFile=newZipFile(srcFile);
Enumerationentries=zipFile.entries();while(entries.hasMoreElements()){
ZipEntryentry=(ZipEntry)entries.nextElement();
System.out.println(“解压”+entry.getName());//如果是文件夹,就创立个文件夹if(entry.isDirectory()){
StringdirPath=destDirPath+”/”+entry.getName();
Filedir=newFile(dirPath);
dir.mkdirs();
}else{//如果是文件,就先创立一个文件,然后用io流把内容copy曩昔FiletargetFile=newFile(destDirPath+”/”+entry.getName());//确保这个文件的父文件夹必需要存在if(!targetFile.getParentFile().exists()){
targetFile.getParentFile().mkdirs();
}
targetFile.createNewFile();//将紧缩文件内容写入到这个文件中InputStreamis=zipFile.getInputStream(entry);
FileOutputStreamfos=newFileOutputStream(targetFile);intlen;byte[]buf=newbyte[BUFFER_SIZE];while((len=is.read(buf))!=-1){
fos.write(buf,0,len);
}//关流次序,先打开的后封闭fos.close();
is.close();
}
}longend=System.currentTimeMillis();
System.out.println(“解压完成,耗时:”+(end-start)+”ms”);
}catch(Exceptione){thrownewRuntimeException(“unziperrorfromZipUtils”,e);
}finally{if(zipFile!=null){try{
zipFile.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}/**
*紧缩成ZIP办法
*@paramsrcFiles需要紧缩的文件列表
*@paramout紧缩文件输出流
*@throwsRuntimeException紧缩失利会抛出运行时反常
*/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(“紧缩完成,耗时:”+(end-start)+”ms”);
}catch(Exceptione){thrownewRuntimeException(“ziperrorfromZipUtils”,e);
}finally{if(zos!=null){try{
zos.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
三、使用东西类紧缩和解压文件
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();
}/**
*测试紧缩文件
*/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);
}/**
*测试解压文件
*@throwsException
*/publicstaticvoidtestUnzip()throwsException{
FilesrcFile=newFile(“c:\2.zip”);
StringdestDirPath=”c:\”;
ZipUtils.unZip(srcFile,destDirPath);
}
}
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com