博舍

java 使用io流生成ZIP压缩文件 java生成zip文件

java 使用io流生成ZIP压缩文件

在Eclipse中新建项目CompressFiles,并在其中创建一个CompressFiles.java文件。在该类的主方法中创建compressAllZip()方法,实现对指定的目录和文件进行压缩的目的。核心代码如下所示:

publicclassCompressFiles{//压缩文件或者目录,其中:dirPath:压缩的根目录,srcName://dirPath目录下的所有文件包名子目录,targetName:压缩后的zip文件publicstaticvoidcompressAllZip(StringdirPath,StringsrcName,StringtargetName){if(dirPath==null){//判断根目录是否存在System.out.println("压缩失败"+dirPath+"目录不存在");return;}FilebaseDir=newFile(dirPath);//判断dirPath是不是目录if(!baseDir.exists()||(!baseDir.isDirectory())){System.out.println("压缩失败"+dirPath+"目录不存在");return;}StringbasicRootDir=baseDir.getAbsolutePath();FiletargetFile=newFile(targetName);//创建zip文件try{//创建一个zip输出流来压缩数据并写入到zip文件ZipOutputStreamout=newZipOutputStream(newFileOutputStream(targetFile));if(srcName.equals("*")){//将baseDir目录下的所有文件压缩到ZIPCompressFiles.compressDirToZip(basicRootDir,baseDir,out);}else{Filefile=newFile(baseDir,srcName);if(file.isFile()){CompressFiles.compressFileToZip(basicRootDir,file,out);}else{CompressFiles.compressDirToZip(basicRootDir,file,out);}}out.close();System.out.println("文件压缩成功,压缩包的文件名为:"+targetName);}catch(IOExceptione){System.out.println("压缩失败:"+e);e.printStackTrace();}}//利用ZipOutputStream对目录的压缩privatestaticvoidcompressDirToZip(StringbasicRootDir,Filedir,ZipOutputStreamout){if(dir.isDirectory()){File[]files=dir.listFiles();//列出dir目录下所有文件if(files.length==0){//如果是空文件夹ZipEntryentry=newZipEntry(getFileName(basicRootDir,dir));//存储目录信息try{out.putNextEntry(entry);out.closeEntry();}catch(IOExceptione){e.printStackTrace();}return;}for(inti=0;i生成的压缩包的路径/***下面这个可能会有问题我是在pom.xml里导入不了没提示就去官网下载了*https://commons.apache.org/proper/commons-io/download_io.cgi*然后按照https://blog.csdn.net/sinat_33718563/article/details/93023646*去设置好就可以用啦这块所作的一切都是为了->>FileUtils!*/byte[]bytes=FileUtils.readFileToByteArray(file1);os.write(bytes);os.flush();os.close();

最后前端会收到流下载就Ok啦

Java生成压缩文件(zip、rar 格式)

Oracle中错误代码ORA-02292违反了完整性约束条件解决

qq_58385388:老哥,这个应该用FK_...更好点吧,毕竟禁用的是相关联表的外键

jquery中的find()和next()的用法及区别

学,:小白一看就懂,感谢分享

oracle自定义函数forinloop示例

Zliang117:按您的格式来写,函数编译有错误,是怎么回事?

mkdir()与mkdirs()的区别

伤枫落月:很好

oracle自定义函数forinloop示例

qq_37242057:强

java生成压缩文件

作者:chenssy。一个专注于【死磕Java】系列创作的男人

出处:https://www.cnblogs.com/chenssy/p/3223902.html

作者个人网站:https://www.cmsblogs.com/。专注于Java优质系列文章分享,提供一站式Java学习资料

目前死磕系列包括:

    1.【死磕Java并发】:https://www.cmsblogs.com/category/1391296887813967872(已完成)

    2.【死磕Spring之IOC】:https://www.cmsblogs.com/category/1391374860344758272(已完成)

    3.【死磕Redis】:https://www.cmsblogs.com/category/1391389927996002304(已完成)

    4.【死磕Java基础】:https://www.cmsblogs.com/category/1411518540095295488

    5.【死磕NIO】:https://www.cmsblogs.com/article/1435620402348036096

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇