java 实现将多个文件,压缩到同一个 zip 压缩包中

package com.yuhuofei.utils;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** @Description* @ClassName ZipUtils* @Author yuhuofei* @Date 2022/8/10 20:37* @Version 1.0*/
public class ZipUtils {/*** @param zipPathDir  压缩包路径 ,如 /home/data/zip-folder/* @param zipFileName 压缩包名称 ,如 测试文件.zip* @param fileList    要压缩的文件列表(绝对路径),如 /home/person/test/测试.doc,/home/person/haha/测试.doc* @return*/public static void compressFiles(String zipPathDir, String zipFileName, List<String> fileList) {try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(zipPathDir + zipFileName)))) {File zipFile = new File(zipPathDir);if (!zipFile.exists()) {zipFile.mkdirs();}for (String filePath : fileList) {File file = new File(filePath);if (file.exists()) {int index = file.getName().lastIndexOf('.');ZipEntry zipEntry = new ZipEntry(file.getName().substring(0, index) + "-" + dateRandom18() + file.getName().substring(index));zos.putNextEntry(zipEntry);byte[] buffer = new byte[2048];compressSingleFile(file, zos, buffer);}}zos.flush();} catch (Exception e) {System.out.println("压缩所有文件成zip包出错" + e);}}//压缩单个文件public static void compressSingleFile(File file, ZipOutputStream zos, byte[] buffer) {int len;try (FileInputStream fis = new FileInputStream(file)) {while ((len = fis.read(buffer)) > 0) {zos.write(buffer, 0, len);zos.flush();}zos.closeEntry();} catch (IOException e) {System.out.println("====压缩单个文件异常====" + e);}}//生成随机数public static String dateRandom18() {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");String date = simpleDateFormat.format(new Date());String timeMillis = String.valueOf(System.currentTimeMillis());String fiveNumber = timeMillis.substring(timeMillis.length() - 6);String tempRandom = String.valueOf(Math.random());String number = tempRandom.substring(tempRandom.length() - 4);return date + fiveNumber + number;}//测试方法public static void main(String[] args) {String zipPathDir = "D:/test/";String zipFileName = "测试文件.zip";List<String> list = new ArrayList<>();list.add("C:/Users/yuhuofei/Desktop/mybatis截图/00.JPG");list.add("C:/Users/yuhuofei/Desktop/mybatis截图/01.JPG");compressFiles(zipPathDir, zipFileName, list);}
}

结果如下

java实现多文件压缩相关推荐

  1. java 操作Zip文件(压缩、解压、加密)

    java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...

  2. java 实现ppt文件压缩

    java 实现ppt文件压缩 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  3. 利用Java进行zip文件压缩与解压缩

    可能存在的业务情况: 1.用户上传了压缩包,需校验压缩包中的文件是否合格. 2.用户上传压缩包,对压缩包中的文件进行批量水印处理 解决思路: 1.读取原压缩包文件,解压缩至临时目录 2.对临时目录中的 ...

  4. Java zip/gzip文件压缩和解压缩

    Java IO 为了减少传输时的数据量 在Java中提供了专门的压缩流将文件或者文件夹压缩成zip,gzip,jar等文件形式. 压缩流实现 Java支持的三种压缩格式:zip.jar.gzip. 1 ...

  5. java多个文件压缩_java实现多个文件压缩

    mport java.io.*; import java.util.*; import java.util.zip.ZipOutputStream; import java.util.zip.ZipE ...

  6. Java中的文件压缩

    package com.bc.utils;import java.io.*; import java.util.List; import java.util.zip.ZipEntry; import ...

  7. Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩

    // 测试 ZipUtil.zipFiles(new File("D:/abc"), new File("a123.zip")); import java.io ...

  8. java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解

    Java实现多文件压缩和解压缩代码 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  9. JAVA 7z Seven Zip 压缩和解压文件

    JAVA 7z Seven Zip 压缩和解压文件 7-Zip是基于GNU LGPL协议发布的软件,通过全新算法使压缩比率大幅提升 本文主要讲解通过JAVA方式把文件压缩成7z文件和对7z文件进行解压 ...

最新文章

  1. ZHUOQING 发表论文整理
  2. Django-缓存、信号
  3. python openpyxl读写xlsx_python高阶教程-python操作xlsx文件(openpyxl)
  4. python爬虫机器人价格_Python
  5. 《从零开始学Swift》学习笔记(Day 14)——字符串的插入、删除和替换
  6. Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
  7. CORTEX-A系列处理器
  8. PHP中 字符串 常用函数
  9. 如何彻底删除hao123主页?
  10. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(1):Cortex-M3指令集概要
  11. 微信朋友圈输入框加发送测试用例总结
  12. android读写access数据库,Android中利用远程Microsoft Access数据库应用程序
  13. 使用蓝牙连接设备显示无法连接的解决方案
  14. 系统架构师----笔记
  15. 抖音网红是如何推广产品的?
  16. linux下的屏幕录像软件罗列
  17. 剑指offer46. 把数字翻译成字符串
  18. 基于OkHttp3封装网络请求框架
  19. 智慧数字经营小程序存在的意义和价值分析
  20. windows 10放大125%后字体模糊 如何设置

热门文章

  1. Vue3前端项目加载使用腾讯地图
  2. 力扣杯2023春-个人赛、战队赛
  3. 北欧“双城记”——爱立信和诺基亚一季度财报分析
  4. 美国股市何时使用计算机,2020年股票交易何时开始?香港股市交易时间(图形)...
  5. 办理《北京市工作居住证》各项变更须提交材料
  6. 蓝桥杯练习系统答案-数的读法-Python
  7. 思维导图的分类 利用思维导图绘制学习知识方法介绍
  8. 【Python】python爬取百度云网盘资源-源码
  9. IOS应用内购买App开发完整流程
  10. IE浏览器版本测试方法