ZIP Arşivleri, en popüler ve yaygın olarak kullanılan sıkıştırılmış dosya biçimlerinden biridir. ZIP dosyalarının kullanılmasının ana nedeni, toplam dosya boyutunu küçültmek ve birden çok dosyayı tek bir arşiv olarak göndermektir. Bir geliştirici olarak, ZIP arşivlerinde sıkıştırılmış dosyalardan metin, resim ve hatta meta verileri çıkarabilirsiniz. Bu yazıda, Java’da ZIP arşiv verilerinin nasıl çıkarılacağını tartışacağız.

Java'daki ZIP dosyalarından veri ayıklayın

Aşağıdaki konular aşağıda ele alınmıştır:

ZIP dosyaları Verilerini Çıkarmak için Java API

GroupDocs.Parser, geliştiriciler için Java API’sini de içeren belge ayrıştırma çözümü sağlar. Bu makalenin örnek(ler)inde bu Java API to ayıklamak için ZIP dosyaları verilerini kullanacağım. Ek olarak, bu API, uzun bir desteklenen belge biçimleri listesinden görüntülerin, ham metnin, yapılandırılmış ve biçimlendirilmiş metnin ve meta verilerin veri çıkarılmasına olanak tanır. Bu belge formatları, kelime işlem belgeleri, PDF, sunumlar, elektronik tablolar, e-postalar, veritabanları, e-Kitaplar ve diğerlerini içerir.

İndirin veya Yapılandırın

JAR dosyasını indirilenler bölümünden indirebilir veya maven tabanlı Java uygulamalarınızın pom.xml dosyası için en son depo ve bağımlılık yapılandırmalarını edinebilirsiniz.

<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>

Java’da ZIP Dosyaları Verilerini Çıkarma

Arşivin içindeki herhangi bir dosyadan veri çıkarmak için, önce ekteki tüm dosyaları almanız gerekir. Bundan sonra, her dosyadan her türlü veriyi daha fazla çıkarabilirsiniz. Aşağıdaki adımlar, ZIP dosyaları verilerinin nasıl çıkarılacağını ve Java’daki her bir kapalı dosyadan nasıl metin alınacağını gösterir.

  • Parser sınıfını kullanarak ZIP arşivini yükleyin.
  • getContainer yöntemini kullanarak ek koleksiyonunu ayıklayın.
  • Ekteki her dosyanın verileri için ekleri gezin.
  • Ayrıştırıcı sınıfının ilgili yöntemlerini kullanarak farklı türdeki verileri elde edebilirsiniz.

Kaynak kodu, ZIP dosyaları verilerinin Java kullanılarak nasıl çıkarılacağını gösterir. Aşağıdaki örnek, ZIP arşivindeki tüm dosyalardan metnin tamamını çıkarır.

// ZIP Arşiv Verilerini Java'da Çıkarın
Parser parser = new Parser("path/archive.zip");
// Ekleri kapsayıcıdan çıkarın
Iterable<ContainerItem> attachments = parser.getContainer();

// ZIP varlıklarının koleksiyonunu yineleyin
for (ContainerItem item : attachments) {
    // DOSYA BİLGİSİNİ yazdır
    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.");
    }
}

Yukarıdaki kaynak kodun çıktısı, ZIP dosyası içindeki PDF dosyalarından birinin alınan metnini gösterir.

 -----------------------------------
 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 

Java’daki ZIP dosyalarındaki Dosyalardan Görüntüleri Çıkarın

Yalnızca metinle sınırlı kalmayıp, benzer şekilde görüntü bilgilerini de çıkarabilirsiniz. Aşağıdaki adımlar, ZIP dosyaları verilerinin nasıl çıkarılacağını ve ekteki her bir dosyadan görüntü bilgilerinin nasıl alınacağını gösterir.

  • ZIP arşivini Parser sınıfını kullanarak yükleyin.
  • getContainer yöntemini kullanarak ek koleksiyonunu ayıklayın.
  • Her bir ekteki görüntülerin koleksiyonunu elde etmek için ekleri çaprazlayın.
  • Şimdi PageImageArea sınıfını kullanarak her görüntünün bilgisini almak için görüntüleri çaprazlayın.

Aşağıdaki kaynak kodu, Java’daki ZIP dosyaları içindeki dosyalardan görüntü verilerinin nasıl çıkarılacağını gösterir.

// Java'daki ZIP arşivindeki dosyadan Görüntü bilgilerini ayıklayın
Parser parser = new Parser("path/archive.zip");
// Ekleri kapsayıcıdan çıkarın
Iterable<ContainerItem> attachments = parser.getContainer();

// ZIP varlıklarının koleksiyonunu yineleyin
for (ContainerItem item : attachments) {
    try {
        Parser attachmentParser = item.openParser();
        Iterable<PageImageArea> images = attachmentParser.getImages();
        if (images != null) {
            int imageCount = 1;
            for (PageImageArea image : images) {
                // Bir sayfa dizini, dikdörtgen ve görüntü türü yazdırın:
                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) 

Ücretsiz API Lisansı Alın

API’yi değerlendirme sınırlamaları olmadan kullanmak için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Kısacası, Java uygulamalarınızda ZIP arşiv verilerini nasıl çıkaracağınızı öğrendiniz. Ek olarak, GroupDocs.Parser for Java’ı kullanarak ZIP dosyalarından görüntüleri de çıkarabilirsiniz. Sıkıştırılmış dosyalar için veri çıkarma Java uygulamanızı oluşturmaya başlayın. API hakkında daha fazla bilgi edinmek için belgeleri ziyaret edin. Sorularınız için forum aracılığıyla bize ulaşın.

Ayrıca bakınız