如何使用 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然後只需更改下面的代碼。
  • 請更改以下代碼中的路徑

輸出