本篇内容介绍了“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二级路由报错的解决办法:1、检查并删除二级路由路径前面的斜杠;2、…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。