志在指尖
用双手敲打未来

Java操作zip-压缩和解压文件

一、说明
rar格局的紧缩包收费,java支撑zip格局的紧缩和解压Java
二、东西类
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);
}
}

未经允许不得转载:IT技术网站 » Java操作zip-压缩和解压文件
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载