如何使用java实现一次性压缩多个文件到zip中
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"如何使用java实现一次性压缩多个文件到zip中",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用java实现一次性压缩多个
千家信息网最后更新 2026年11月03日如何使用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安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
国智互联网科技
互联网科技官网
今日互联网科技
圆梦互联网科技
互联网科技资迅
致聘互联网科技
科技创新互联网企业
互联网科技宣传片
互联网科技中介
科技与互联网哪个更好
浙江互联网科技研学营
武汉健翔互联网络科技有限公司
长沙茂晟互联网科技有限公司
高科技互联网套路
互联网营销推广黑科技
互联网科技资金流入
四川互联网展示科技馆设计
互联网界的黑科技
盐城市攀科互联网科技有限公司
广州为想互联网科技有限公司
亿人帮互联网科技有限公司
广州大一互联网络科技有限公司
美国互联网科技
奇酷互联网科技公司
亿账通互联网科技
伴你行互联网科技有限公司
湖南一路畅行互联网科技
半导体是互联网高科技吗
信承诺互联网科技有限公司