如何使用 Apache Commons 归档器和压缩器在 Java 中以编程方式创建 .zip 或 .tar

已发表: 2016-03-08

如何以编程方式在 Java 中创建 .zip 和 .tar

默认情况下,Apache Foundation 带有大量实用程序供我们使用。 在大多数情况下,我们有点不知道存在用于在我们的生产环境中使用的实用程序。

在本教程中,我们将介绍一个实用程序,通过它我们可以在 Java 中以编程方式压缩任何文件或目录。 换句话说,简单的档案实用程序。

为什么我们需要这个实用程序?

前段时间我写了一篇关于如何使用 Spring MVC 架构上传文件的文章。 如果您有非常大的文件并且您在某些文件系统(如 netapp 或 filer 等)中托管其他用户文件,那么您可能需要在上传之前压缩文件。 您可以将以下代码结合到您的应用程序中以实现相同的目的。

让我们先检查一个结果以更好地理解:

前:

Crunchify Tar 实用程序 - 文件和目录 .zip 或 .tar

后:

由 Java 程序创建的 crunchify*.zip 文件

让我们开始吧:

  • 创建类CrunchifyCompressArchivesUtility.java
  • 将以下 Maven 依赖项添加到您的项目中。
  • 如果您没有 Maven 项目,请按照以下步骤操作。

  • 我们将使用 Apache Commons compress archivers工具
  • TarArchiveEntry类表示 Tar 存档中的条目。 它由条目的标题和条目的文件组成。 条目可以通过三种方式之一进行实例化,具体取决于它们的使用方式。
  • TarArchiveOutputStream类将 UNIX tar 归档作为 OutputStream 写入。
  • 我们将首先归档一个文件
  • 同样在同一个程序中,我们将归档一个目录
  • 我们将文件和目录转换为.zip文件。 如果你想要.tar然后只需更改下面的代码。
  • 请更改以下代码中的路径

输出