Java密码压缩工具 zip4j

本文介绍了Java密码压缩工具zip4j,它支持加密压缩文件。通过提供示例代码展示了如何使用zip4j创建带密码的ZIP文件,包括设置加密方法和强度。在遇到'ZipException: Zip headers not found.'错误时,建议检查目标文件是否合法。zip4j可在GitHub和Maven仓库中获取,是Java加密压缩的好帮手。
摘要由CSDN通过智能技术生成

Java密码压缩工具 zip4j

这个工具跟其他的比,好处就是 支持带密码的压缩

官网地址:http://www.lingala.net/zip4j.html
github地址:https://github.com/srikanth-lingala/zip4j
maven:https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j

Maven

<dependency>
    <groupId>net.lingala.zip4j</groupId>
    <artifactId>zip4j</artifactId>
    <version>2.6.4</version>
</dependency>

gradle

compile group: 'net.lingala.zip4j', name: 'zip4j', version: '2.6.4'

例子:

public static void compressFile(File srcFile, File destFile, String password) {
	try{
		ZipParameters zipParameters = new ZipParameters();
		zipParameters.setEncryptFiles(true);
		zipParameters.setEncryptionMethod(EncryptionMethod.AES);
		zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);

		ZipFile zipFile = new ZipFile(destFile, password.toCharArray());
		zipFile.addFile(srcFile, zipParameters);
	}catch ( Exception e ){
		throw new BusinessException("压缩文件失败", e);
	}
}

如报错:

net.lingala.zip4j.exception.ZipException: Zip headers not found.
Probably not a zip file or a corrupted zip file

可以删除目标文件,或者目标文件是不合法的zip文件

具体其他用法github上有更多例子,也可以看源码

ps:才知道 log4j,zip4j的4j 是4java的意思…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java后端开发中,可以使用Java自带的工具类来处理压缩文件。其中,java.util.zip包提供了ZipOutputStream类,专门用于对文件进行压缩操作。通过使用ZipOutputStream类,我们可以将文件或文件夹压缩成一个zip文件。 使用ZipOutputStream类进行压缩文件的操作步骤如下: 1. 创建一个ZipOutputStream对象,指定要输出的文件流。 2. 使用putNextEntry方法创建一个新的ZipEntry对象,指定要压缩的文件或文件夹的路径。 3. 使用BufferedInputStream读取要压缩的文件或文件夹的内容,并使用ZipOutputStream的write方法将内容写入压缩文件。 4. 循环执行步骤2和步骤3,直到所有要压缩的文件或文件夹都被处理完毕。 5. 关闭ZipOutputStream对象,完成压缩操作。 下面是一个示例代码,展示了如何使用JavaZipOutputStream类进行文件压缩操作: ```java import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipUtils { public static void compressFile(String sourceFilePath, String zipFilePath) throws IOException { File sourceFile = new File(sourceFilePath); FileOutputStream fos = new FileOutputStream(zipFilePath); ZipOutputStream zos = new ZipOutputStream(fos); compress(sourceFile, zos, ""); zos.close(); fos.close(); } private static void compress(File file, ZipOutputStream zos, String parentPath) throws IOException { if (file.isDirectory()) { // 如果是文件夹,则递归处理子文件夹和文件 File[] files = file.listFiles(); for (File subFile : files) { compress(subFile, zos, parentPath + file.getName() + "/"); } } else { // 如果是文件,则压缩文件 FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值