Arsip ZIP adalah salah satu format file terkompresi yang paling populer dan umum digunakan. Alasan utama menggunakan file ZIP adalah untuk mengurangi ukuran file total dan mengirim banyak file sebagai satu arsip. Sebagai pengembang, Anda dapat mengekstrak teks, gambar, dan bahkan metadata dari file yang dikompresi dalam arsip ZIP. Pada artikel ini, kita akan membahas cara mengekstrak data arsip ZIP di Java.

Ekstrak data dari file ZIP di Java

Topik-topik berikut dibahas di bawah ini:

Java API untuk Mengekstrak Data file ZIP

GroupDocs.Parser menyediakan solusi penguraian dokumen untuk pengembang yang juga menyertakan Java API. Saya akan menggunakan Java API ini untuk mengekstrak data file ZIP dalam contoh artikel ini. Selain itu, API ini memungkinkan ekstraksi data gambar, teks mentah, teks terstruktur dan terformat, dan metadata dari daftar panjang format dokumen yang didukung. Format dokumen ini termasuk dokumen pengolah kata, PDF, presentasi, spreadsheet, email, database, eBuku, dan banyak lainnya.

Unduh atau Konfigurasi

Anda dapat mengunduh file JAR dari bagian unduhan, atau dapatkan repositori terbaru dan konfigurasi dependensi untuk pom.xml aplikasi Java berbasis maven Anda.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

Cara Mengekstrak Data File ZIP di Java

Untuk mengekstrak data dari file apa pun yang terlampir di dalam arsip, pertama-tama Anda harus mendapatkan semua file terlampir. Setelah itu, Anda dapat mengekstrak lebih lanjut segala jenis data dari setiap file. Langkah-langkah berikut menunjukkan cara mengekstrak data file ZIP dan mengambil teks dari setiap file terlampir di Java.

  • Muat arsip ZIP menggunakan kelas Parser.
  • Ekstrak kumpulan lampiran menggunakan metode getContainer.
  • Lintasi lampiran untuk data dari setiap file terlampir.
  • Anda bisa mendapatkan berbagai jenis data menggunakan metode masing-masing kelas Parser.

Kode sumber menunjukkan cara mengekstrak data file ZIP menggunakan Java. Contoh di bawah mengekstrak seluruh teks dari semua file dalam arsip ZIP.

// Ekstrak Data Arsip ZIP di Java
Parser parser = new Parser("path/archive.zip");
// Ekstrak lampiran dari wadah
Iterable<ContainerItem> attachments = parser.getContainer();

// Ulangi kumpulan entitas ZIP
for (ContainerItem item : attachments) {
    // Cetak INFO FILE
    System.out.println("-----------------------------------");
    System.out.println("Name: " + item.getName());
    System.out.println("File Size: " + item.getSize() + " Bytes");
    System.out.println("-----------------------------------");

    try {
        Parser attachmentParser = item.openParser();
        TextReader reader = attachmentParser.getText();
        System.out.println(reader == null ? "No text" : reader.readToEnd());
    } 
    catch (UnsupportedDocumentFormatException ex) {
        System.out.println("Isn't supported.");
    }
}

Output dari kode sumber di atas menunjukkan teks yang diambil dari salah satu file PDF di dalam file ZIP.

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

Ekstrak Gambar dari File dalam file ZIP di Java

Tidak terbatas pada teks saja, Anda juga dapat mengekstrak informasi gambar dengan cara yang sama. Langkah-langkah berikut menunjukkan cara mengekstrak data file ZIP dan mengambil informasi gambar dari setiap file terlampir.

  • Muat arsip ZIP menggunakan kelas Parser.
  • Ekstrak kumpulan lampiran menggunakan metode getContainer.
  • Lintasi lampiran untuk mendapatkan kumpulan gambar dalam setiap lampiran.
  • Sekarang telusuri gambar untuk mendapatkan informasi dari setiap gambar menggunakan kelas PageImageArea.

Kode sumber berikut menunjukkan cara mengekstrak data gambar dari file yang disertakan dalam file ZIP di Java.

// Ekstrak info Gambar dari file dalam arsip ZIP di Java
Parser parser = new Parser("path/archive.zip");
// Ekstrak lampiran dari wadah
Iterable<ContainerItem> attachments = parser.getContainer();

// Ulangi kumpulan entitas ZIP
for (ContainerItem item : attachments) {
    try {
        Parser attachmentParser = item.openParser();
        Iterable<PageImageArea> images = attachmentParser.getImages();
        if (images != null) {
            int imageCount = 1;
            for (PageImageArea image : images) {
                // Cetak indeks halaman, persegi panjang, dan jenis gambar:
                System.out.println(String.format("Image# %d \nPage: %d\nFile Type: %s", imageCount, image.getPage().getIndex()+1, image.getFileType()));
                imageCount++;
            }
        }
    } 
    catch (UnsupportedDocumentFormatException ex) {
        System.out.println("Isn't supported.");
    }
}
Image# 1 
Page: 1
File Type: JPEG Image (.jpeg) 

Dapatkan Lisensi API Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk menggunakan API tanpa batasan evaluasi.

Kesimpulan

Singkatnya, Anda telah mempelajari cara mengekstrak data arsip ZIP dalam aplikasi Java Anda. Selain itu, Anda juga dapat mengekstrak gambar dari file ZIP menggunakan GroupDocs.Parser for Java. Mulai buat aplikasi Java ekstraksi data Anda untuk file terkompresi. Untuk mempelajari lebih lanjut tentang API, kunjungi dokumentasi. Untuk pertanyaan, hubungi kami melalui forum.

Lihat juga