So erstellen Sie .zip oder .tar programmatisch in Java mit Apache Commons Archivers and Compressors

Veröffentlicht: 2016-03-08

Wie man .zip und .tar in Java programmatisch erstellt

Apache Foundation enthält standardmäßig viele, viele Dienstprogramme, die wir verwenden können. In den meisten Fällen sind wir uns des Dienstprogramms, das für die Verwendung in unserer Produktionsumgebung vorhanden ist, nicht bewusst.

In diesem Tutorial gehen wir auf eines der Dienstprogramme ein, mit denen wir jede Datei oder jedes Verzeichnis programmgesteuert in Java komprimieren können. Mit anderen Worten, ein einfaches Archivdienstprogramm.

Warum brauchen wir dieses Dienstprogramm?

Vor einiger Zeit habe ich einen Artikel darüber geschrieben, wie man Dateien mit der Spring MVC-Architektur hochlädt. Wenn Sie eine sehr große Datei haben und Dateien anderer Benutzer in einigen Dateisystemen wie NetApp oder Filer usw. hosten, möchten Sie die Dateien möglicherweise vor dem Hochladen komprimieren. Sie können den folgenden Code in Ihre Anwendung einfügen, um denselben Zweck zu erreichen.

Sehen wir uns zuerst ein Ergebnis an, um es besser zu verstehen:

Vor:

Crunchify Tar Utility - Datei und Verzeichnis .zip oder .tar

Nach dem:

crunchify*.zip-Datei, die vom Java-Programm erstellt wurde

Lass uns anfangen:

  • Erstellen Sie die Klasse CrunchifyCompressArchivesUtility.java
  • Fügen Sie Ihrem Projekt die folgende Maven-Abhängigkeit hinzu.
  • Wenn Sie kein Maven-Projekt haben, befolgen Sie diese Schritte.

  • Wir werden das Apache Commons compress archivers verwenden
  • Die Klasse TarArchiveEntry repräsentiert einen Eintrag in einem Tar-Archiv. Es besteht aus dem Header des Eintrags sowie der Datei des Eintrags. Einträge können auf eine von drei Arten instanziiert werden, je nachdem, wie sie verwendet werden sollen.
  • Die Klasse TarArchiveOutputStream schreibt ein UNIX-Tar-Archiv als OutputStream.
  • Wir werden zunächst nur eine Datei archivieren
  • Auch im selben Programm werden wir ein Verzeichnis archivieren
  • Wir werden Datei und Verzeichnis in eine .zip -Datei konvertieren. Wenn Sie .tar möchten, ändern Sie einfach den Code unten.
  • Bitte ändern Sie den Pfad im folgenden Code

Ausgabe