如何使用java实现一次性压缩多个文件到zip中
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要为大家展示了"如何使用java实现一次性压缩多个文件到zip中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用java实现一次性压缩多个
千家信息网最后更新 2025年01月19日如何使用java实现一次性压缩多个文件到zip中
这篇文章主要为大家展示了"如何使用java实现一次性压缩多个文件到zip中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用java实现一次性压缩多个文件到zip中"这篇文章吧。
具体如下:
1.需要引入包:
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;import org.springframework.util.StringUtils;
2.代码
/*** @Title: compress* @Description: TODO* @param filePaths 需要压缩的文件地址列表(绝对路径)* @param zipFilePath 需要压缩到哪个zip文件(无需创建这样一个zip,只需要指定一个全路径)* @param keepDirStructure 压缩后目录是否保持原目录结构* @throws IOException* @return int 压缩成功的文件个数*/public static int compress(ListfilePaths, String zipFilePath,Boolean keepDirStructure) throws IOException{ byte[] buf = new byte[1024]; File zipFile = new File(zipFilePath); //zip文件不存在,则创建文件,用于压缩 if(!zipFile.exists()) zipFile.createNewFile(); int fileCount = 0;//记录压缩了几个文件? try { ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile)); for(int i = 0; i < filePaths.size(); i++){ String relativePath = filePaths.get(i); if(StringUtils.isEmpty(relativePath)){ continue; } File sourceFile = new File(relativePath);//绝对路径找到file if(sourceFile == null || !sourceFile.exists()){ continue; } FileInputStream fis = new FileInputStream(sourceFile); if(keepDirStructure!=null && keepDirStructure){ //保持目录结构 zos.putNextEntry(new ZipEntry(relativePath)); }else{ //直接放到压缩包的根目录 zos.putNextEntry(new ZipEntry(sourceFile.getName())); } //System.out.println("压缩当前文件:"+sourceFile.getName()); int len; while((len = fis.read(buf)) > 0){ zos.write(buf, 0, len); } zos.closeEntry(); fis.close(); fileCount++; } zos.close(); //System.out.println("压缩完成"); } catch (Exception e) { e.printStackTrace(); } return fileCount;}
3.测试
public static void main(String[] args) throws IOException { ListsourceFilePaths = new ArrayList (); sourceFilePaths.add("d:/test/C08065.jpg"); sourceFilePaths.add("d:/test/新建文件夹/C08984.jpg"); sourceFilePaths.add("d:/test/找不到我.jpg");//试一个找不到的文件 //指定打包到哪个zip(绝对路径) String zipTempFilePath = "D:/test/test.zip"; //调用压缩 int s = compress(sourceFilePaths, zipTempFilePath,false); System.out.println("成功压缩"+s+"个文件");}
以上是"如何使用java实现一次性压缩多个文件到zip中"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
一次性
多个
内容
篇文章
路径
成功
目录
学习
帮助
个数
代码
地址
文件夹
易懂
更多
条理
知识
结构
编带
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc如何在服务器开创造
微服网络技术是干啥的
普陀区合格软件开发服务保障
湖北手机app软件开发
脸云互联网科技有限公司曲靖店
网络安全五星
阿里云服务器权限设置
网络安全警察臂章
数据库如何添加数据库文件
方舟服务器无限资源是什么意思
四川服务器托管虚拟主机服务器
手机app软件开发贵吗
查询数据库中等待事件
网络安全报图片四年级
微信平台 服务器配置
智慧停车场数据库设置
设计院网络安全工作总结
数据库安全性控制属于
随访数据库分析
国家网络安全文件要求
河南最好的组装服务器云主机
年报数据库
网络安全报图片四年级
靖江工业网络技术参考价格
广东项目售后管理软件开发
哈利波特可以去其他服务器吗
我国网络安全现况是怎样的
海康服务器如何调时间
网络技术创业者
万方数据库图片