1. 产品
  2.   压缩
  3.   Java
  4.   Zip4j
 
  

Java ZIP 库,用于创建和管理 ZIP 档案

开源 Java 库,支持以编程方式创建、提取和修改 ZIP 文件。它通过 Java API 支持 Unicode、拆分和合并归档。

在 Java 编程的世界中,高效处理 zip 存档是一项常见需求。无论是用于压缩文件以便存储,还是在网络上传输数据,可靠的库都能产生巨大的差异。Java 生态系统中的一颗瑰宝是 Zip4j 库,它是处理 zip 文件的强大工具。让我们深入了解是什么让 Zip4j 成为开发者的首选,并探索其功能和优势。Zip4j 由 Srikanth Lingala 开发,简化了复杂的 zip 文件操作,为开发者提供了一种在 Java 应用程序中无缝处理存档的方式。

Zip4j 是一个开源的 Java 库,提供了一个易于使用的接口,用于以编程方式创建、解压和修改 zip 文件。Zip4j 库提供了简洁的 API,使软件开发者能够以最少的代码执行常见的 ZIP 文件操作。无论是创建新 ZIP 文件、解压文件,还是更新已有的归档,库的直观设计都简化了实现过程。该库支持读/写受密码保护的 zip 文件和流,并支持 Zip64 格式。

Zip4j 库被证明是 Java 开发者寻找可靠且易于使用的 ZIP 文件操作库时的宝贵资产。该库支持多种压缩方式,包括 Deflate、Store、BZip2 和 AES 加密。这种灵活性使开发者能够选择最符合其需求的压缩方式。其易用性、加密功能以及对多种特性的支持,使其成为涉及压缩和解压任务的项目的首选。随着软件开发者不断探索在 Java 中高效处理 ZIP 文件的方法,Zip4j 脱颖而出,成为一个强大且多功能的解决方案。

Previous Next

开始使用 Zip4j

推荐使用 Zip4j 的方式是通过 Maven 仓库。您可以在 Maven 项目中直接使用 Zip4j API,只需简单配置即可。

Jarchivelib Maven 依赖

<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j </artifactId>
<version>2.11.5</version>
<type>jar</type> <dependency>

通过 Git 命令安装

 git clone https://github.com/srikanth-lingala/zip4j.git 

您可以直接从 GitHub 下载该库。

使用 Java 库创建 Zip 文件

使用 Zip4j,创建新的 ZIP 文件轻而易举。该库使软件开发人员只需几行 Java 代码即可创建和编辑 ZIP 存档。该库提供直观的 API,用于向新建或已有的 ZIP 存档添加文件。它还支持多种高级功能,如以编程方式添加、提取、更新、删除 ZIP 文件中的文件,应用 Unicode,拆分和合并存档,均可在 Java 应用程序中实现。以下示例展示了软件开发人员如何使用 Java 命令创建新的 ZIP 存档并向其中添加文件。

如何通过 Java API 创建新的 ZIP 存档并向其中添加文件?

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class ZipCreationExample {

    public static void main(String[] args) {
        try {
            // Create a new ZipFile object
            ZipFile zipFile = new ZipFile("example.zip");

            // Specify parameters for the file to be added
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // Set compression method
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // Set compression level

            // Add a file to the ZIP archive
            zipFile.addFile("file.txt", parameters);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

通过 Java 从 ZIP 存档中提取文件

开源的 Zip4j 简化了从 ZIP 存档中提取文件的过程,提供了易于使用的解压 API。软件开发人员可以轻松选择任意 ZIP 文件以及输出目录。还可以将 ZIP 存档中的单个文件提取为新名称和新位置。以下示例演示了软件开发人员如何在 Java 应用程序中轻松将文件从 ZIP 文件提取到目标目录。

如何在 Java 应用程序中从 ZIP 存档中提取文件?

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class ExtractionExample {

    public static void main(String[] args) {
        try {
            // Specify the path to the ZIP archive
            ZipFile zipFile = new ZipFile("example.zip");

            // Specify the destination directory for extraction
            zipFile.extractAll("extracted_files/");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

通过 Java 拆分和合并存档

大文件可能难以处理,但 Zip4j 通过允许软件开发者在 Java 应用程序中将 ZIP 文件拆分为更小的部分,使其更容易。此功能有助于高效地传输或存储大型归档文件。此外,该库还能合并拆分的归档,毫无缝隙地恢复原始 ZIP 文件。以下方法可用于将跨多个文件拆分的 zip 文件合并为单个 zip 文件。

如何通过 Java API 将多个 ZIP 文件合并为单个 ZIP 文件?


new ZipFile("split_zip_file.zip").mergeSplitFiles(new File("merged_zip_file.zip"));

应用加密和密码保护

安全是文件压缩的关键因素,Zip4j 在这方面表现出色。软件开发者可以轻松对 ZIP 文件进行加密和密码保护,确保敏感数据的安全。该库支持多种加密算法,包括 AES(高级加密标准)。Zip4j 使开发者能够使用强加密算法对 ZIP 文件进行加密,并通过以下代码示例所示的密码进行保护。

如何使用 Java API 加密 ZIP 文件来保护数据?


import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class EncryptionExample {

    public static void main(String[] args) {
        try {
            // Create a new ZipFile object
            ZipFile zipFile = new ZipFile("encrypted.zip");

            // Specify encryption parameters
            ZipParameters parameters = new ZipParameters();
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); // Use AES encryption
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); // Set key strength
            parameters.setPassword("secretpassword"); // Set password

            // Add files to the ZIP archive with encryption
            zipFile.addFile("file.txt", parameters);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 中国人