Java如何实现文件压缩为zip和解压zip压缩包


本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:
*false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
*@throwsException
*/
privatestaticvoidcompress(FilesourceFile,ZipOutputStreamzos,Stringname,
booleanKeepDirStructure)throwsException{
byte[]buf=newbyte[BUFFER_SIZE];

if(sourceFile.isFile()){

//向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字

zos.putNextEntry(newZipEntry(name));

//copy文件到zip输出流中

intlen;

FileInputStreamin=newFileInputStream(sourceFile);

while((len=in.read(buf))!=-1){

zos.write(buf,0,len);

}

//Completetheentry

zos.closeEntry();

in.close();

}else{

File[]listFiles=sourceFile.listFiles();

if(listFiles==null||listFiles.length==0){

//需要保留原来的文件结构时,需要对空文件夹进行处理

if(KeepDirStructure){

//空文件夹的处理

zos.putNextEntry(newZipEntry(name+”/”));

//没有文件,不需要文件的copy

zos.closeEntry();
}

}else{

for(Filefile:listFiles){

//判断是否需要保留原来的文件结构

if(KeepDirStructure){

//注意:file.getName()前面需要带上父文件夹的名字加一斜杠,

//不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了

compress(file,zos,name+”/”+file.getName(),KeepDirStructure);

}else{

compress(file,zos,file.getName(),KeepDirStructure);

}

}

}

}

}测试验证代码:打包前后的文件如下:代码如下:测试验证代码:解压前后的文件如下:“Java如何实现文件压缩为zip和解压zip压缩包”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小免费云主机域名编将为大家输出更多高质量的实用文章!

相关推荐: vue二级路由报错如何解决

这篇文章主要介绍了vue二级路由报错如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue二级路由报错如何解决文章都会有所收获,下面我们一起来看看吧。 vue二级路由报错的解决办法:1、检查并删除二级路由路径前面的斜杠;2、…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/15 17:16
下一篇 03/15 17:16

相关推荐