zip工具类并且带密码(可批量添加文件)
-首先把pom加好
<!-- https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j -->
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.3</version>
</dependency>
- 下面是工具类
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
import org.apache.log4j.Logger;
import java.io.File;
import java.util.ArrayList;
/**
* @author Administrator
* zip工具类并且带密码
*/
public class ZipUtils {
private static Logger logger = Logger.getLogger(ZipUtils.class);
public static String Createzip(ArrayList<File> files,ZipFile zipFile,String password) {
try {
/*
ZipFile zipFile = new ZipFile("D:\\home\\data\\bizlog\\嗯.zip");
ArrayList<File> files = new ArrayList<>();
files.add(new File("D:\\home\\data\\bizlog\\1.txt"));
files.add(new File("D:\\home\\data\\bizlog\\2.txt"));
files.add(new File("D:\\home\\data\\bizlog\\1.docx"));
*/
//设置压缩文件参数
ZipParameters parameters = new ZipParameters();
//设置压缩方法
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
//设置压缩级别
//DEFLATE_LEVEL_FASTEST - Lowest compression level but higher speed of compression
//DEFLATE_LEVEL_FAST - Low compression level but higher speed of compression
//DEFLATE_LEVEL_NORMAL - Optimal balance between compression level/speed
//DEFLATE_LEVEL_MAXIMUM - High compression level with a compromise of speed
//DEFLATE_LEVEL_ULTRA - Highest compression level but low speed
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
//设置压缩文件加密
parameters.setEncryptFiles(true);
//设置加密方法
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
//设置aes加密强度
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
//设置密码
parameters.setPassword(password);
//添加文件到压缩文件
zipFile.addFiles(files, parameters);
return parameters.getFileNameInZip();
}catch (Exception e){
logger.info(e.toString());
return null;
}
}
}