java实现多文件压缩
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实现多文件压缩相关推荐
- java 操作Zip文件(压缩、解压、加密)
java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...
- java 实现ppt文件压缩
java 实现ppt文件压缩 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- 利用Java进行zip文件压缩与解压缩
可能存在的业务情况: 1.用户上传了压缩包,需校验压缩包中的文件是否合格. 2.用户上传压缩包,对压缩包中的文件进行批量水印处理 解决思路: 1.读取原压缩包文件,解压缩至临时目录 2.对临时目录中的 ...
- Java zip/gzip文件压缩和解压缩
Java IO 为了减少传输时的数据量 在Java中提供了专门的压缩流将文件或者文件夹压缩成zip,gzip,jar等文件形式. 压缩流实现 Java支持的三种压缩格式:zip.jar.gzip. 1 ...
- java多个文件压缩_java实现多个文件压缩
mport java.io.*; import java.util.*; import java.util.zip.ZipOutputStream; import java.util.zip.ZipE ...
- Java中的文件压缩
package com.bc.utils;import java.io.*; import java.util.List; import java.util.zip.ZipEntry; import ...
- Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
// 测试 ZipUtil.zipFiles(new File("D:/abc"), new File("a123.zip")); import java.io ...
- java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解
Java实现多文件压缩和解压缩代码 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...
- JAVA 7z Seven Zip 压缩和解压文件
JAVA 7z Seven Zip 压缩和解压文件 7-Zip是基于GNU LGPL协议发布的软件,通过全新算法使压缩比率大幅提升 本文主要讲解通过JAVA方式把文件压缩成7z文件和对7z文件进行解压 ...
最新文章
- ZHUOQING 发表论文整理
- Django-缓存、信号
- python openpyxl读写xlsx_python高阶教程-python操作xlsx文件(openpyxl)
- python爬虫机器人价格_Python
- 《从零开始学Swift》学习笔记(Day 14)——字符串的插入、删除和替换
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
- CORTEX-A系列处理器
- PHP中 字符串 常用函数
- 如何彻底删除hao123主页?
- STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(1):Cortex-M3指令集概要
- 微信朋友圈输入框加发送测试用例总结
- android读写access数据库,Android中利用远程Microsoft Access数据库应用程序
- 使用蓝牙连接设备显示无法连接的解决方案
- 系统架构师----笔记
- 抖音网红是如何推广产品的?
- linux下的屏幕录像软件罗列
- 剑指offer46. 把数字翻译成字符串
- 基于OkHttp3封装网络请求框架
- 智慧数字经营小程序存在的意义和价值分析
- windows 10放大125%后字体模糊 如何设置