Apache CommonsArchiversおよびCompressorsを使用してJavaでプログラムで.zipまたは.tarを作成する方法

公開: 2016-03-08

プログラムでJavaで.zipと.tarを作成する方法

Apache Foundationには、デフォルトで、私たちが使用できる多くのユーティリティが付属しています。 ほとんどの場合、本番環境で使用するために存在するユーティリティを認識していません。

このチュートリアルでは、Javaでプログラムによって任意のファイルまたはディレクトリを圧縮できるユーティリティの1つについて説明します。 言い換えれば、単純なアーカイブユーティリティです。

なぜこのユーティリティが必要なのですか?

しばらく前に、SpringMVCアーキテクチャを使用してファイルをアップロードする方法に関する記事を書きました。 非常に大きなファイルがあり、netappやfilerなどのファイルシステムで他のユーザーファイルをホストしている場合は、アップロードする前にファイルを圧縮することをお勧めします。 同じ目的を達成するために、以下のコードをアプリケーションに組み込むことができます。

理解を深めるために、最初に結果をチェックアウトしましょう。

前:

CrunchifyTarユーティリティ-ファイルとディレクトリの.zipまたは.tar

後:

Javaプログラムによって作成されたcrunchify * .zipファイル

始めましょう:

  • クラスCrunchifyCompressArchivesUtility.java作成します
  • 以下のMaven依存関係をプロジェクトに追加します。
  • Mavenプロジェクトがない場合は、次の手順に従ってください。

  • compress archiversユーティリティを使用します
  • TarArchiveEntryクラスは、Tarアーカイブのエントリを表します。 これは、エントリのヘッダーとエントリのファイルで構成されます。 エントリは、使用方法に応じて、3つの方法のいずれかでインスタンス化できます。
  • TarArchiveOutputStreamクラスは、UNIXtarアーカイブをOutputStreamとして書き込みます。
  • 最初にファイルだけをアーカイブします
  • また、同じプログラムでディレクトリをアーカイブします
  • ファイルとディレクトリを.zipファイルに変換します。 .tarが必要な場合は、以下のコードを変更してください。
  • 以下のコードでパスを変更してください

出力