先看工具类

package space.util;import java.io.File;
import java.util.List;import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.EncryptionMethod;/*** 文件打包工具类* * @author SPACE* @log Jun 14, 2020 9:23:19 PM*/
public class ZipUtil {/*** 打包指定的文件* * @param file        待打包的文件* @param zipFilePath 存储压缩包的路径,包含文件名* @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午2:46:49*/public static void packageZip(File file, String zipFilePath) throws Exception {validationIsNull(file, zipFilePath);new ZipFile(zipFilePath).addFile(file);}/*** 打包指定的文件* * @param file        待打包的文件* @param zipFilePath 存储压缩包的路径,包含文件名* @param password    压缩包密码* @throws Exception* * @author by SPACE* @log create on 2020-6-15 15:09:27*/public static void packageZip(File file, String zipFilePath, String password) throws Exception {validationIsNull(file, zipFilePath, password);ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());zipFile.addFile(file, getZipParameters());}/*** 对指定的一些文件进行打包* * @param fileList    待打包的文件 list(不接收目录)* @param zipFilePath 存储压缩包的路径,包含文件名* @throws Exception* * @author by SPACE* @log create on 2020年6月15日15:09:37*/public static void packageZip(List<File> fileList, String zipFilePath) throws Exception {validationIsNull(fileList, zipFilePath);new ZipFile(zipFilePath).addFiles(fileList);}/*** 对指定的一些文件进行打包* * @param fileList    待打包的文件 list* @param zipFilePath 存储压缩包的路径,包含文件名* @param password    压缩包密码* * @author by SPACE* @throws Exception* @log create on 2020年6月15日下午2:41:23*/public static void packageZip(List<File> fileList, String zipFilePath, String password) throws Exception {validationIsNull(fileList, zipFilePath, password);ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());zipFile.addFiles(fileList, getZipParameters());}/*** 打包指定的目录* * @param catalogPath 待打包的目录* @param zipFilePath 存储压缩包的路径,包含文件名* @throws Exception 如 catalogPath 非目录,则抛出此异常* * @author by SPACE* @log create on 2020年6月15日下午2:30:10*/public static void packageZip(String catalogPath, String zipFilePath) throws Exception {validationIsNull(catalogPath, zipFilePath);new ZipFile(zipFilePath).addFolder(new File(catalogPath));}/*** 打包指定的目录* * @param catalogPath 待打包的目录* @param zipFilePath 存储压缩包的路径,包含文件名* @param password    压缩包密码* @throws Exception 如 catalogPath 非目录,则抛出此异常* * @author by SPACE* @log create on 2020年6月15日下午2:33:33*/public static void packageZip(String catalogPath, String zipFilePath, String password) throws Exception {validationIsNull(catalogPath, zipFilePath, password);ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());zipFile.addFolder(new File(catalogPath), getZipParameters());}/*** 解压压缩包* * @param zipFilePath  待解压的压缩包绝对路径* @param unzipCatalog 解压后的目录* @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:51:07*/public static void unzipAll(String zipFilePath, String unzipCatalog) throws Exception {validationIsNull(zipFilePath, unzipCatalog);new ZipFile(zipFilePath).extractAll(unzipCatalog);}/*** 解压带密码的压缩包* * @param zipFilePath  待解压的压缩包绝对路径* @param unzipCatalog 解压后的目录* @param password     压缩包密码* @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:51:45*/public static void unzipAll(String zipFilePath, String unzipCatalog, String password) throws Exception {validationIsNull(zipFilePath, unzipCatalog);new ZipFile(zipFilePath, password.toCharArray()).extractAll(unzipCatalog);}/*** 解压指定的文件* * @param zipFilePath    待解压的压缩包绝对路径* @param targetFilePath 目标文件相对目录,基于压缩包根目录* @param unzipCatalog   解压后的目录* @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:56:15*/public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog)throws Exception {new ZipFile(zipFilePath).extractFile(targetFilePath, unzipCatalog);}/*** 从设置了密码的压缩包中解压指定的文件* * @param zipFilePath    待解压的压缩包绝对路径* @param targetFilePath 目标文件相对目录,基于压缩包根目录,*                            <span style="color:red">例如 msg/success/msg.txt</span>* @param unzipCatalog   解压后的目录* @param password       压缩包密码* @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:54:36*/public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog, String password)throws Exception {new ZipFile(zipFilePath, password.toCharArray()).extractFile(targetFilePath, unzipCatalog);}/*** 校验参数是否为空* * @param objects 待校验的参数数组* @throws NullPointerException* * @author by SPACE* @log create on 2020年6月15日下午3:06:20*/static void validationIsNull(Object... objects) throws NullPointerException {for (int i = 0; i < objects.length; i++) {if (StringUtil.isNull(objects[i])) {throw new NullPointerException("param is null");}}}/*** get ZipParameters* * @return ZipParameters* * @author by SPACE* @log create on 2020年6月15日下午3:05:24*/static ZipParameters getZipParameters() {ZipParameters zipParameters = new ZipParameters();zipParameters.setEncryptFiles(true);zipParameters.setEncryptionMethod(EncryptionMethod.AES);zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);return zipParameters;}}

再看测试类

package space.main;import java.io.File;
import java.util.ArrayList;
import java.util.List;import net.lingala.zip4j.exception.ZipException;
import space.util.ZipUtil;public class ZipTest {/*** 压缩包密码*/static final String ZIP_PASSWORD = "TAehvImD9zRZnaikoibnup7x6G4kt3fQ";public static void main(String[] args) {try {// 打包单个文件// packageFileZip();// 打包单个文件,并设置密码
//          packageFilePwdZip();// 打包多个文件
//          packageFilesZip();// 打包多个文件,设置密码
//          packageFilesPwdZip();// 打包指定的目录
//          packageFileCatalogZip();// 打包指定的目录,设置密码
//          packageFileCatalogPwdZip();// 解压压缩包
//          unzipAll();// 解压设置了密码的压缩包
//          unzipPwdAll();// 解压指定的文件
//          unzipTargetFile();// 从设置了密码的压缩包内解压指定的文件
//          unzipTargetPwdFile();System.out.println("OK");} catch (Exception e) {e.printStackTrace();}}/*** 打包单个文件* * @author by SPACE* @throws ZipException* @log create on 2020年6月15日下午2:50:38*/public static void packageFileZip() throws Exception {String filePath = "C:\\Users\\SPACE\\Downloads\\135700\\files\\detailedList.txt";String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(new File(filePath), zipFilePath);}/*** 打包单个文件,带密码* * @author by SPACE* @throws ZipException* @log create on 2020年6月15日下午2:50:38*/public static void packageFilePwdZip() throws Exception {String filePath = "C:\\Users\\SPACE\\Downloads\\135700\\files\\detailedList.txt";String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(new File(filePath), zipFilePath, ZIP_PASSWORD);}/*** 打包多个文件* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:17:34*/public static void packageFilesZip() throws Exception {List<File> fileList = new ArrayList<File>();fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files\\detailedList.txt"));fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files"));fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files\\subassembly\\10021\\1000310021_run.jsp"));String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(fileList, zipFilePath);}/*** 打包多个文件,设置密码* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:20:04*/public static void packageFilesPwdZip() throws Exception {List<File> fileList = new ArrayList<File>();fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files\\detailedList.txt"));fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files"));fileList.add(new File("C:\\Users\\SPACE\\Downloads\\135700\\files\\subassembly\\10021\\1000310021_run.jsp"));String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(fileList, zipFilePath, ZIP_PASSWORD);}/*** 打包指定的目录* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:22:25*/public static void packageFileCatalogZip() throws Exception {String catalogPath = "C:\\Users\\SPACE\\Downloads\\135700";String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(catalogPath, zipFilePath);}/*** 打包指定的目录,设置密码* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午3:26:34*/public static void packageFileCatalogPwdZip() throws Exception {String catalogPath = "C:\\Users\\SPACE\\Downloads\\135700";String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";ZipUtil.packageZip(catalogPath, zipFilePath, ZIP_PASSWORD);}/*** 解压* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午4:00:10*/public static void unzipAll() throws Exception {String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";String unzipCatalog = "C:\\Users\\SPACE\\Downloads\\";ZipUtil.unzipAll(zipFilePath, unzipCatalog);}/*** 解压设置了密码的压缩包* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午4:04:57*/public static void unzipPwdAll() throws Exception {String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";String unzipCatalog = "C:\\Users\\SPACE\\Downloads\\";ZipUtil.unzipAll(zipFilePath, unzipCatalog, ZIP_PASSWORD);}/*** 解压指定的文件* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午4:07:48*/public static void unzipTargetFile() throws Exception {String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";String unzipCatalog = "C:\\Users\\SPACE\\Downloads\\";String targetFilePath = "135700\\files\\detailedList.txt";ZipUtil.unzipTargetFile(zipFilePath, targetFilePath, unzipCatalog);}/*** 从设置了密码的压缩包内解压指定的文件* * @throws Exception* * @author by SPACE* @log create on 2020年6月15日下午4:08:19*/public static void unzipTargetPwdFile() throws Exception {String zipFilePath = "C:\\Users\\SPACE\\Downloads\\packageZipFile.zip";String unzipCatalog = "C:\\Users\\SPACE\\Downloads\\";String targetFilePath = "135700\\files\\detailedList.txt";ZipUtil.unzipTargetFile(zipFilePath, targetFilePath, unzipCatalog, ZIP_PASSWORD);}}

Java 使用 zip4j 进行基本的压缩、解压、设置密码操作(version zip4j-2.6.4)相关推荐

  1. java zip 字符串_java字符串的压缩解压

    packagecom.example.base.other;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importja ...

  2. python压缩文件tar_python 实现tar文件压缩解压的实例详解

    python 实现tar文件压缩解压的实例详解 python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = t ...

  3. php视频压缩技术,PHP 实现文件压缩解压操作的方法

    在php中,有时我们需要使用到压缩文件操作,压缩文件可以节省磁盘空间:且压缩文件更小,便于网络传输,效率高,下面我们就来了解php的压缩解压相关操作 在PHP中有一个ZipArchive类,专门用于文 ...

  4. java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件

    7zip(下面简称7z)是由Igor Pavlov所开发的一种压缩格式,主要使用的压缩算法是LZMA/LZMA2.7z是一种压缩比非常高的格式,这与其压缩算法LZMA有直接关系,所以很多大文件都是用7 ...

  5. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

  6. 实现Java代码压缩解压

    原因:某个时间想对服务器上的zip中的某些文件进行修改 本来以为很简单的事情,在网上找了好些代码,结果效果都不是很理想. 实现对象:对各种类型的文件夹(包含子文件或子文件夹) 下面介绍一下自己综合网上 ...

  7. Java中zip压缩解压

    1. 解压问题 360压缩文件 使用jdk API 读取压缩文件后解压,报错 java.lang.IllegalArgumentException:MALFORMED 如果是好压压缩文件,使用jdk ...

  8. java zip malformed_压缩/解压 zip 时遇到 java.lang.IllegalArgumentException: MALFORMED

    因为zip文件名为中文,或者压缩内容有中文 解决方法: 错误详情: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinde ...

  9. Java 字符串压缩/解压【开发记录】

    1.场景:由于数据库字段长度有限,并且不能随意的修改数据库字段的配置,数据库的某个字段设置的长度可能在设置初期是满足需求的,后期由于业务变更或业务量增大导致该字段存储的数据增长,落库时可能因为该字段数 ...

  10. 【文件压缩解压工具类-含密码】

    文件压缩解压工具类-含密码 一.zip4j简介 二.zip4j工具类使用步骤 1.添加maven依赖 2.工具类代码 3.调用测试 三.结语 一.zip4j简介 zip4j功能比较强大,支持加密.解密 ...

最新文章

  1. CTF---Web入门第十二题 程序逻辑问题
  2. 小心VB.NET中的除运算符/和/
  3. Eclipse中快速为类提供构造器、get()、set()方法、重写toString()、hasCode()、equals()等
  4. 从已有安装包(vendor)恢复 composer.json
  5. Ubuntu + pip + Python3 + CPU版本 PaddlePaddle 安装
  6. 生理周期,POJ(1006)
  7. 一起来玩AZURE SQL(二)AZURE SQL 初级使用篇
  8. java 注解报错_eclipse编译项目:Java @Override 注解报错的解决方法
  9. MVC4网站发布到windows server 2003服务器
  10. 《Python》 字典
  11. 技术指南 | 使用 mPaaS 配置 SM2 国密加密指南
  12. 基于Matpower的电力系统潮流计算原理及仿真设计(详细)
  13. html中表格的合并
  14. 初识:心血管磁共振(CMR)成像
  15. 【MySQL】MySQL常用SQL关键字
  16. 篮球图片html页面代码,教你用PS制作一个非常逼真的篮球图片
  17. 静态背景下运动目标检测
  18. 实施MES的难点这么多,为什么企业还如此偏爱?
  19. c语言打字游戏程序设计报告,打字游戏程序设计报告.doc
  20. 长沙学院计算机专业老师李彬,长沙学院2007-2008模具CADCAM_04机本教案【荐】.doc...

热门文章

  1. 改变世界的十位算法大师
  2. 延长天文学家寿命的发现——纳皮尔发现对数
  3. 推荐系统--矩阵分解(2)
  4. vue.js php,vue.js去哪下载
  5. 就业信息网进行服务器维护,服务器安全武汉大学黄石理工学院就业信息网.pptx...
  6. php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题
  7. window连接不上ssdb的问题
  8. 利用Mybatis写第一个数据库操作的程序
  9. Serverless 场景排查问题利器 : 函数实例命令行操作
  10. MySQL8.0 - 新特性 - 说说InnoDB Log System的隐藏参数