赞
踩
1、加入依赖
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.1</version>
</dependency>
/**
* 压缩单个文件并加密
*/
private static String zipFile(String file, String fileOutPath, String passWord, String fileName) throws FileNotFoundException {
FileInputStream fileInputStream = new FileInputStream(file);
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// 压缩级别
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// 开启加密
parameters.setSourceExternalStream(true);
// 文件名称
parameters.setFileNameInZip(fileName + ".xlsx");
if (!"".equals(passWord)) {
parameters.setEncryptFiles(true);
// 加密方式
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
// 设置加密密码
parameters.setPassword(passWord.toCharArray());
}
try {
ZipFile zipFile = new ZipFile(fileOutPath + fileName + ".zip");
zipFile.addStream(fileInputStream, parameters);
// 加密解压后删除excel
deleteFile(file);
} catch (ZipException e) {
e.printStackTrace();
}
return fileOutPath + fileName + ".zip";
}
/**
* 删除文件
*/
private static boolean deleteFile(String sPath) {
boolean flag = false;
File file = new File(sPath);
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
file.delete();
flag = true;
}
return flag;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。