下文笔者讲述使用java代码对文件进行自动压缩和加密的方法分享,如下所示
编写一个对zip文件压缩及设置密码的工具方法
实现思路:
1.引入ZipOutputStream类
2.借助ZipOutputStream类即可对文件进行zip压缩和加密操作
加密只需设置
相应的参数即可
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
if(!StringUtils.isEmpty(password)){
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
}
例:编写一个对zip文件压缩及设置密码的工具方法
/**
*
* @Title: zipFilesAndEncrypt
* @Author: www.java265.com
* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
* @param srcFileName 待压缩文件路径
* @param zipFileName zip文件名
* @param password 加密密码
* @return
* @throws Exception
*/
public void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password)
throws Exception{
ZipOutputStream outputStream=null;
if(StringUtils.isEmpty(srcFileName) || StringUtils.isEmpty(zipFileName)){
log.error("请求的压缩路径或者文件名有误");
return;
}
try {
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
if(!StringUtils.isEmpty(password)){
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
}
Arraylist filesToAdd = new ArrayList();
File file=new File(srcFileName);
File[] files = new File[0];
if(file.isDirectory())
{
files = file.listFiles();
for(int i=0;i<files.length;i++) {
filesToAdd.add(new File(srcFileName+files[i].getName()));
System.out.println("文件名称:"+files[i].getName());
}
}
else {
filesToAdd.add(new File(srcFileName+file.getName()));
}
ZipFile zipFile = new ZipFile(srcFileName+zipFileName+".zip");
zipFile.addFiles(filesToAdd, parameters);
}
catch(Exception e)
{
System.out.println("文件压缩出错");
log.error("文件压缩出错", e);
throw e;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


