如何使用java实现一次性压缩多个文件到zip中
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要为大家展示了"如何使用java实现一次性压缩多个文件到zip中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用java实现一次性压缩多个
千家信息网最后更新 2025年11月10日如何使用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 { List sourceFilePaths = 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安全错误
数据库的锁怎样保障安全
软件开发需要哪些团队
文本文件字段换行导入数据库
网络数据库安全问题
魔兽无法刷新服务器列表
宁波软件开发系统
手机不连接网络安全吗
做单片机软件开发怎么样
qt工控软件开发
xp打开管理服务器不可用
英雄联盟台服服务器地区选哪个
你对网络技术有何了解
论文系统的软件开发怎么写
我的世界连接别人的服务器怎么弄
高德导航车机版地图数据库
软件开发商的响应文件
加强政府机关网络安全
互联网软件开发过程中的角色
消息服务器 java
linux 网络安全命令
分布式数据库技术与实现
针对网络安全的言论
新乡贤娱网络技术有限公司
应用软件开发工程师FA
服务器数据错误402怎么解决
软件开发 宣传
海南电商软件开发语言
数据库无聊
武汉猫友互联网科技公司
魔兽9.1服务器人数统计
微信数据库破解