![cover](http://image.wzoe.fun/i/2024/06/10/66669adf03c16.png)
java实现zip文件压缩
AI-摘要
佐伊 GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
简单压缩文件
public void zipFile(String zipFileName, List<File> files) {
try {
// 创建一个输出流用于写入ZIP文件
FileOutputStream fos = new FileOutputStream(zipFileName);
ZipOutputStream zos = new ZipOutputStream(fos);
for (File file : files) {
// 打开要压缩的文件
FileInputStream fis = new FileInputStream(file);
// 将文件添加到ZIP文件中
zos.putNextEntry(new ZipEntry(file.getName()));
// 将文件内容写入ZIP文件
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
// 关闭当前文件的ZipEntry
zos.closeEntry();
// 关闭文件输入流
fis.close();
}
// 关闭ZIP输出流
zos.close();
} catch (IOException e) {
log.error("文件压缩失败", e);
throw new RuntimeException(e);
}
}
加密压缩文件
导入依赖
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.11.5</version>
</dependency>
示例代码
public static void zip(List<File> files, String dest, String passwd) {
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(CompressionMethod.DEFLATE);
// 压缩级别
parameters.setCompressionLevel(CompressionLevel.NORMAL);
try (ZipFile zipFile = new ZipFile(dest)) {
if (!StringUtils.isEmpty(passwd)) {
parameters.setEncryptFiles(true);
// 加密方式
parameters.setEncryptionMethod(EncryptionMethod.AES);
parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
zipFile.setPassword(passwd.toCharArray());
}
for (File file : files) {
zipFile.addFile(file, parameters);
}
} catch (IOException e) {
log.error("文件压缩失败", e);
throw new RuntimeException(e);
}
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员佐伊
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果