在 Java 中提取 RAR

RAR 文件通常用于将大量数据压缩为单个较小的文件。但是,如果没有合适的工具,使用 Java 以编程方式提取这些文件可能是一项挑战。在本指南中,我们将介绍两种使用 Java 提取 RAR 文件的方法:一种用于常规 RAR 文件,另一种用于加密 RAR 文件。

提取 RAR 文件 - Java API 配置

要在 Java 中解压 rar 文件,您需要在下载 JAR 文件时安装 Conholdate.Total for Java 或者在项目的 pom.xml 文件中运行以下 Maven 命令:

<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.8</version>
<type>pom</type>
</dependency>

使用 Java 提取 RAR 文件

提取常规 RAR 文件时,该过程涉及打开存档、访问其各个条目以及将提取的数据保存到所需位置。下面的分步分解演示了如何从 RAR 存档中提取第一个文件条目并将其保存到文件中。此方法对于处理标准 RAR 存档很有用。

  • 使用 RarArchive 类加载源 RAR 档案。

  • 从源文件中提取档案。

  • 将解压的档案导出到磁盘。

以下代码片段显示了如何使用流处理文件读写,确保每个条目以小块的形式正确提取,以避免内存过载,尤其是在处理大文件时。

try (com.aspose.zip.RarArchive archive = new com.aspose.zip.RarArchive("archive.rar")) {
    try (FileOutputStream destination = new FileOutputStream(dataDir + "firstEntry.txt")) {
        try (InputStream source = archive.getEntries().get(0).open()) {
            byte[] b = new byte[1024];
            int bytesRead;
            while (0 < (bytesRead = source.read(b, 0, b.length))) {
                destination.write(b, 0, bytesRead);
            }
        }
    }
} catch (IOException ex) {
    System.out.println(ex);
}

此外,您可以根据需要进一步增强此代码片段,以遍历每个条目并将其逐个导出到相应的文件。

使用 Java 提取加密的 RAR 文件

处理受密码保护或加密的 RAR 文件时,提取过程略有不同。您需要提供正确的密码才能成功提取文件。以下步骤总结了在 Java 中提取加密和受密码保护的 RAR 文件的过程:

  • 输入的加密 RAR 文件使用 RarArchive 类加载。

  • 提供正确的密码来提取第一个文件条目。

  • 提取的数据以指定的文件名保存。

以下代码示例演示了如何使用 Java 提取加密和受密码保护的 RAR:

File fi = new File("encrypted.rar");
try (com.aspose.zip.RarArchive archive = new com.aspose.zip.RarArchive(Files.newInputStream(fi.toPath()))) {
    try (FileOutputStream destination = new FileOutputStream(dataDir + "firstEntry.txt")) {
        archive.getEntries().get(0).extract(destination, "p@s$w0rd");
    }
} catch (IOException ex) {
    System.out.println(ex);
}

免费评估许可证

您可以申请 免费临时许可证 来评估此功能和其他数据压缩和行进处理功能,不受任何评估限制。

总结

使用这种方法,在 Java 中解压 RAR 文件(无论是标准文件还是加密文件)都很简单。它提供了高效且灵活的方法来处理各种 RAR 档案,包括受密码保护的档案。您可以轻松地将 RAR 解压功能集成到 Java 应用程序中,从而无缝管理压缩数据。如果您有任何问题,请在 forum 上写信给我们。

参见