当前位置:网站首页>Zip4j使用
Zip4j使用
2022-08-04 19:12:00 【wfsm】
引用:https://www.jianshu.com/p/89bf65317e6b
ZIp4j :支持加密,解密压缩,支持文件的添加,删除,等
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.2</version>
</dependency>
public interface Zip4jConstants {
// 默认
Integer COMP_DEFLATE = 8;
// 仅打包,不压缩
Integer COMP_STORE = 0;
// 加密压缩
Integer COMP_AES_ENC =99;
Integer DEFLATE_LEVEL_FASTEST =1; // (速度最快,压缩比最小)
Integer DEFLATE_LEVEL_FAST = 3; //(速度快,压缩比小)
Integer DEFLATE_LEVEL_NORMAL = 5; //(一般)
Integer DEFLATE_LEVEL_MAXIMUM = 7;
Integer DEFLATE_LEVEL_ULTRA = 9;
static final int ENC_NO_ENCRYPTION = -1;//(默认,没有加密方法,如果采用此字段,会报错”没有提供加密算法”)
static final int ENC_METHOD_STANDARD = 0;
static final int ENC_METHOD_AES = 99;
static final int AES_STRENGTH_128 = 0x01;
static final int AES_STRENGTH_192 = 0x02;
static final int AES_STRENGTH_256 = 0x03;
}
package com.cj.zip;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.ArrayList;
public class Demo {
public static void zipFile() throws ZipException {
// 生成的压缩文件
ZipFile zipFile = new ZipFile("F:\\images.zip");
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// 压缩级别
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// 要打包的文件夹
File currentFile = new File("F:\\images");
File[] files = currentFile.listFiles();
for (File f : files) {
if (f.isDirectory()){
zipFile.addFolder(f.getPath(),parameters);
}else{
zipFile.addFile(f,parameters);
}
}
}
public static void unzip() throws ZipException {
ZipFile zipFile = new ZipFile("F:\\images.zip");
zipFile.extractAll("f:\\aa");
}
public static void addFile() throws ZipException {
ZipFile zipFile = new ZipFile("F:\\images.zip");
ArrayList<Object> addFiles = new ArrayList<>();
addFiles.add(new File("F:\\1.txt"));
addFiles.add(new File("F:\\1.pdf"));
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// 目标路径
parameters.setRootFolderInZip("cc/");
// zipFile.addFiles(addFiles,parameters);
zipFile.addFile(new File("F:\\1.txt"),parameters);
zipFile.addFile(new File("F:\\1.pdf"),parameters);
}
public static void addFile02() throws ZipException {
ZipFile zipFile = new ZipFile("f://images.zip");
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(8);
// 设置名字
parameters.setFileNameInZip("cc/hehe.txt");
parameters.setSourceExternalStream(true);
ByteArrayInputStream inputStream = new ByteArrayInputStream(new String("silly b").getBytes());
zipFile.addStream(inputStream,parameters);
}
public static void deleteFile() throws ZipException {
ZipFile zipFile = new ZipFile("f://images.zip");
// 删除压缩文件中文件
zipFile.removeFile("cc/hehe.txt");
}
private static void zipFileWithPwd() throws ZipException {
ZipFile zipFile = new ZipFile("f://images1.zip");
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// 设置加密
parameters.setEncryptFiles(true);
// 加密方式
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword("123");
File currentFile = new File("f://images");
File[] files = currentFile.listFiles();
for (File f : files) {
if (f.isDirectory()){
zipFile.addFolder(f.getPath(),parameters);
}else{
zipFile.addFile(f,parameters);
}
}
}
public static void main(String[] args) throws ZipException {
// zipFile();
// unzip();
// addFile02();
// addFile();
// deleteFile();
zipFileWithPwd();
}
}
边栏推荐
- The CPU suddenly soars and the system responds slowly, what is the cause?Is there any way to check?
- CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
- 【CCIG 2022】视觉大模型论坛
- 切换node版本和切换npm源工具
- ”元宇宙“必须具备这些特点
- Regular expression is incomplete
- 运力升级助力算力流转,中国数字经济的加速时刻
- WPF 元素裁剪 Clip 属性
- Exploration and Practice of Database Governance
- ACP-Cloud Computing By Wakin自用笔记(2)CPU和内存虚拟化
猜你喜欢
随机推荐
curl命令的那些事
查询APP Store已发布过的版本记录
在表格数据集上训练变分自编码器 (VAE)示例
ACP-Cloud Computing By Wakin自用笔记(2)CPU和内存虚拟化
mq消息积压怎么对应
什么是内部客户服务?
译文推荐|Apache Pulsar 隔离系列(四):单集群隔离策略
Scala104-Spark.sql的内置日期时间函数
WPF 元素裁剪 Clip 属性
STP实验
IDEA 自动导入的配置(Auto import)
哈佛架构 VS 冯·诺依曼架构
污损指纹恢复与识别
gbase8s创建RANGE分片表
CPU突然飙高系统反应慢,是怎么导致的?有什么办法排查?
从零开始实现一个简单的CycleGAN项目
判断字符串中是否包含中文
入门:人脸专集1 | 级联卷积神经网络用于人脸检测(文末福利)
作业8.3 线程同步互斥机制条件变量
PostgreSQL的 SPI_接口函数