Come creare .zip o .tar in modo programmatico in Java utilizzando gli archivi e i compressori Apache Commons

Pubblicato: 2016-03-08

Come creare .zip e .tar in Java in modo programmatico

La fondazione Apache per impostazione predefinita viene fornita con molte, molte utilità da utilizzare. Nella maggior parte dei casi non siamo consapevoli dell'utilità che esiste per l'uso da utilizzare nel nostro ambiente di produzione.

In questo tutorial esamineremo una delle utility con cui potremmo comprimere qualsiasi file o directory a livello di codice in Java. In altre parole, semplice utilità di archiviazione.

Perché abbiamo bisogno di questa utilità?

Qualche tempo fa ho scritto un articolo su come caricare file utilizzando l'architettura Spring MVC. Se hai un file molto grande e stai ospitando file di altri utenti in alcuni file system come netapp o filer o così via, potresti voler comprimere i file prima del caricamento. Potresti sposarti sotto il codice nella tua applicazione per raggiungere lo stesso scopo.

Esaminiamo prima un risultato per capire meglio:

Prima:

Crunchify Tar Utility - File e directory .zip o .tar

Dopo:

crunchify*.zip file creato dal programma Java

Iniziamo:

  • Crea classe CrunchifyCompressArchivesUtility.java
  • Aggiungi sotto la dipendenza Maven al tuo progetto.
  • Se non hai un progetto Maven, segui questi passaggi.

  • Utilizzeremo l'utility compress archivers di Apache Commons
  • La classe TarArchiveEntry rappresenta una voce in un archivio Tar. È costituito dall'intestazione della voce e dal file della voce. Le voci possono essere istanziate in tre modi, a seconda di come devono essere utilizzate.
  • La classe TarArchiveOutputStream scrive un archivio tar UNIX come OutputStream.
  • Archivieremo prima solo un file
  • Sempre nello stesso programma archivieremo una directory
  • Convertiremo file e directory in file .zip . Se vuoi .tar , cambia semplicemente il codice qui sotto.
  • Si prega di modificare il percorso nel codice sottostante

Produzione