Jak programowo utworzyć .zip lub .tar w Javie przy użyciu archiwizatorów i kompresorów Apache Commons?

Opublikowany: 2016-03-08

Jak programowo utworzyć .zip i .tar w Javie?

Podstawa Apache domyślnie zawiera wiele narzędzi, z których możemy korzystać. W większości przypadków nie jesteśmy świadomi narzędzia, które istnieje do użycia w naszym środowisku produkcyjnym.

W tym samouczku omówimy jedno z narzędzi, za pomocą których możemy programowo skompresować dowolny plik lub katalog w Javie. Innymi słowy proste narzędzie do archiwów.

Dlaczego potrzebujemy tego narzędzia?

Jakiś czas temu napisałem artykuł o tym, jak wgrywać pliki za pomocą architektury Spring MVC. Jeśli masz bardzo duży plik i przechowujesz pliki innych użytkowników w jakimś systemie plików, takim jak netapp, filer itp., możesz skompresować pliki przed przesłaniem. Możesz połączyć poniższy kod ze swoją aplikacją, aby osiągnąć ten sam cel.

Sprawdźmy najpierw wynik, aby lepiej zrozumieć:

Zanim:

Narzędzie Crunchify Tar — plik i katalog .zip lub .tar

Później:

plik crunchify*.zip stworzony przez program Java

Zacznijmy:

  • Utwórz klasę CrunchifyCompressArchivesUtility.java
  • Dodaj poniżej zależność maven do swojego projektu.
  • Jeśli nie masz projektu maven, wykonaj następujące kroki.

  • Zamierzamy użyć narzędzia do compress archivers Apache Commons
  • Klasa TarArchiveEntry reprezentuje wpis w archiwum Tar. Składa się z nagłówka wpisu oraz pliku wpisu. Wpisy można tworzyć na jeden z trzech sposobów, w zależności od tego, jak mają być używane.
  • Klasa TarArchiveOutputStream zapisuje archiwum tar UNIX jako OutputStream.
  • Najpierw zarchiwizujemy tylko plik
  • Również w tym samym programie zarchiwizujemy katalog
  • Zamierzamy przekonwertować plik i katalog do pliku .zip . Jeśli chcesz .tar , po prostu zmień kod poniżej.
  • Proszę zmienić ścieżkę w poniższym kodzie

Wyjście