Apache Commons Arşivleyiciler ve Kompresörler kullanılarak Java'da programlı olarak .zip veya .tar nasıl oluşturulur

Yayınlanan: 2016-03-08

Java'da programlı olarak .zip ve .tar nasıl oluşturulur

Apache temeli, varsayılan olarak, kullanmamız için çok sayıda yardımcı programla birlikte gelir. Çoğu durumda, üretim ortamımızda kullanmak için mevcut olan yardımcı programın farkında değiliz.

Bu derste, Java'da herhangi bir dosya veya dizini programlı olarak sıkıştırabileceğimiz yardımcı programlardan birinin üzerinden geçeceğiz. Başka bir deyişle, basit arşivler yardımcı programı.

Neden bu yardımcı programa ihtiyacımız var?

Bir süre önce Spring MVC mimarisini kullanarak dosyaların nasıl yükleneceği hakkında bir makale yazdım. Çok büyük bir dosyanız varsa ve diğer kullanıcıların dosyalarını netapp veya filer gibi bazı dosya sistemlerinde barındırıyorsanız, yüklemeden önce dosyaları sıkıştırmak isteyebilirsiniz. Aynı amaca ulaşmak için aşağıdaki kodu uygulamanıza dahil edebilirsiniz.

Daha iyi anlamak için önce bir sonuca bakalım:

Önce:

Crunchify Tar Yardımcı Programı - Dosya ve Dizin .zip veya .tar

Sonrasında:

Java programı tarafından oluşturulan crunchify*.zip dosyası

Başlayalım:

  • CrunchifyCompressArchivesUtility.java sınıfını oluşturun
  • Projenize aşağıdaki maven bağımlılığını ekleyin.
  • Maven projeniz yoksa aşağıdaki adımları izleyin.

  • Apache Commons compress archivers yardımcı programını kullanacağız
  • TarArchiveEntry sınıfı, Tar arşivindeki bir girişi temsil eder. Girişin başlığından ve girişin Dosyasından oluşur. Girişler, nasıl kullanılacağına bağlı olarak üç yoldan biriyle başlatılabilir.
  • TarArchiveOutputStream sınıfı, bir UNIX tar arşivini OutputStream olarak yazar.
  • Önce sadece bir dosyayı arşivleyeceğiz
  • Ayrıca aynı programda bir dizini arşivleyeceğiz
  • Dosya ve dizini .zip dosyasına dönüştüreceğiz. .tar istiyorsanız, aşağıdaki kodu değiştirmeniz yeterlidir.
  • Lütfen aşağıdaki koddaki yolu değiştirin

Çıktı