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