Cum să creați .zip sau .tar programatic în Java folosind Apache Commons Archivers and Compressors

Publicat: 2016-03-08

Cum să creați .zip și .tar în Java în mod programatic

Fundația Apache vine în mod implicit cu o mulțime de utilități pe care noi să le folosim. În majoritatea cazurilor, nu suntem oarecum conștienți de utilitatea care există pentru a fi utilizată în mediul nostru de producție.

În acest tutorial vom trece peste unul dintre utilitarele prin care am putea comprima orice fișier sau director programatic în Java. Cu alte cuvinte, un simplu utilitar pentru arhive.

De ce avem nevoie de acest utilitar?

Cu ceva timp în urmă, am scris un articol despre cum să încărcați fișiere folosind arhitectura Spring MVC. Dacă aveți fișiere foarte mari și găzduiți fișiere alți utilizatori în unele dintre sistemele de fișiere, cum ar fi netapp sau filer sau etc, atunci este posibil să doriți să comprimați fișierele înainte de încărcare. Puteți căsători codul de mai jos în aplicația dvs. pentru a atinge același scop.

Să verificăm mai întâi un rezultat pentru a înțelege mai bine:

Inainte de:

Crunchify Tar Utility - Fișier și director .zip sau .tar

După:

fișier crunchify*.zip creat de programul Java

Să începem:

  • Creați clasa CrunchifyCompressArchivesUtility.java
  • Adăugați mai jos dependența maven la proiectul dvs.
  • Dacă nu aveți un proiect Maven, urmați acești pași.

  • Vom folosi utilitarul Apache Commons compress archivers
  • Clasa TarArchiveEntry reprezintă o intrare într-o arhivă Tar. Este format din antetul intrării, precum și din fișierul intrării. Intrările pot fi instanțiate într-unul din trei moduri, în funcție de modul în care vor fi utilizate.
  • Clasa TarArchiveOutputStream scrie o arhivă tar UNIX ca OutputStream.
  • Vom arhiva mai întâi doar un fișier
  • Tot în același program vom arhiva un director
  • Vom converti fișierul și directorul în fișier .zip . Dacă doriți .tar , schimbați codul de mai jos.
  • Vă rugăm să schimbați calea în codul de mai jos

Ieșire