Cara membuat .zip atau .tar Secara terprogram di Java menggunakan Pengarsip dan Kompresor Apache Commons

Diterbitkan: 2016-03-08

Cara membuat .zip dan .tar di Java secara terprogram

Yayasan Apache secara default hadir dengan banyak sekali utilitas untuk kita gunakan. Dalam sebagian besar kasus, kita agak tidak menyadari utilitas yang ada untuk digunakan di lingkungan produksi kita.

Dalam tutorial ini kita akan membahas salah satu utilitas yang dengannya kita dapat mengompresi file atau direktori apa pun secara terprogram di Java. Dengan kata lain utilitas arsip sederhana.

Mengapa kita membutuhkan utilitas ini?

Beberapa waktu yang lalu saya pernah menulis artikel tentang cara mengunggah file menggunakan arsitektur Spring MVC. Jika Anda memiliki file yang sangat besar dan Anda menghosting file pengguna lain di beberapa sistem file seperti netapp atau filer atau lainnya, maka Anda mungkin ingin mengompres file sebelum mengunggah. Anda dapat menggabungkan kode di bawah ini ke dalam aplikasi Anda untuk mencapai tujuan yang sama.

Mari kita periksa hasilnya terlebih dahulu untuk lebih memahami:

Sebelum:

Utilitas Tar Crunchify - File dan Direktori .zip atau .tar

Setelah:

crunchify*.zip file yang dibuat oleh program Java

Mari kita mulai:

  • Buat kelas CrunchifyCompressArchivesUtility.java
  • Tambahkan ketergantungan maven di bawah ini ke proyek Anda.
  • Jika Anda tidak memiliki proyek pakar, ikuti langkah-langkah ini.

  • Kami akan menggunakan utilitas compress archivers Apache Commons
  • Kelas TarArchiveEntry mewakili entri dalam arsip Tar. Ini terdiri dari header entri, serta File entri. Entri dapat dipakai dalam salah satu dari tiga cara, tergantung pada bagaimana mereka akan digunakan.
  • Kelas TarArchiveOutputStream menulis arsip tar UNIX sebagai OutputStream.
  • Kami akan mengarsipkan hanya file terlebih dahulu
  • Juga dalam program yang sama kami akan mengarsipkan direktori
  • Kita akan mengonversi file dan direktori ke file .zip . Jika Anda ingin .tar maka cukup ubah kode di bawah ini.
  • Silakan ubah jalur dalam kode di bawah ini

Keluaran