Archiwa ZIP to jeden z najpopularniejszych i najczęściej używanych formatów plików skompresowanych. Głównym powodem korzystania z plików ZIP jest zmniejszenie całkowitego rozmiaru pliku i wysłanie wielu plików jako jednego archiwum. Jako programista możesz wyodrębnić tekst, obrazy, a nawet metadane z plików skompresowanych w archiwach ZIP. W tym artykule omówimy, jak wyodrębnić dane z archiwów ZIP w Javie.

Wyodrębnij dane z plików ZIP w Javie

Poniżej omówiono następujące tematy:

Java API do wyodrębniania plików ZIP Data

GroupDocs.Parser zapewnia programistom rozwiązanie do analizowania dokumentów, które obejmuje również interfejs Java API. Będę używać tego Java API do wyodrębniania danych z plików ZIP w przykładach tego artykułu. Ponadto ten interfejs API umożliwia ekstrakcję danych obrazów, surowego tekstu, tekstu strukturalnego i sformatowanego oraz metadanych z długiej listy obsługiwanych formatów dokumentów. Te formaty dokumentów obejmują dokumenty edytorów tekstu, pliki PDF, prezentacje, arkusze kalkulacyjne, wiadomości e-mail, bazy danych, książki elektroniczne i wiele innych.

Pobierz lub skonfiguruj

Możesz pobrać plik JAR z sekcji pobierania lub po prostu pobrać najnowsze konfiguracje repozytorium i zależności dla pliku pom.xml aplikacji Java opartych na Maven.

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

Jak wyodrębnić dane plików ZIP w Javie

Aby wyodrębnić dane z dowolnego pliku znajdującego się w archiwum, musisz najpierw pobrać wszystkie dołączone pliki. Następnie możesz dalej wyodrębniać dowolne dane z każdego pliku. Poniższe kroki pokazują, jak wyodrębnić dane z plików ZIP i pobrać tekst z każdego załączonego pliku w Javie.

  • Załaduj archiwum ZIP przy użyciu klasy Parser.
  • Wyodrębnij kolekcję załączników za pomocą metody getContainer.
  • Przejrzyj załączniki, aby znaleźć dane każdego załączonego pliku.
  • Możesz uzyskać różne rodzaje danych za pomocą odpowiednich metod klasy Parser.

Kod źródłowy pokazuje, jak wyodrębnić dane z plików ZIP przy użyciu języka Java. Poniższy przykład wyodrębnia cały tekst ze wszystkich plików w archiwum ZIP.

// Wyodrębnij dane archiwów ZIP w Javie
Parser parser = new Parser("path/archive.zip");
// Wyciągnij załączniki z pojemnika
Iterable<ContainerItem> attachments = parser.getContainer();

// Iteruj po zbiorze encji ZIP
for (ContainerItem item : attachments) {
    // Wydrukuj INFORMACJE O PLIKU
    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.");
    }
}

Dane wyjściowe powyższego kodu źródłowego pokazują pobrany tekst jednego z plików PDF w pliku 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 

Wyodrębnij obrazy z plików w plikach ZIP w Javie

Nie ograniczając się tylko do tekstu, możesz również w podobny sposób wyodrębnić informacje o obrazach. Poniższe kroki pokazują, jak wyodrębnić dane plików ZIP i pobrać informacje o obrazach z każdego załączonego pliku.

  • Załaduj archiwum ZIP przy użyciu klasy Parser.
  • Wyodrębnij kolekcję załączników za pomocą metody getContainer.
  • Przejrzyj załączniki, aby uzyskać kolekcję obrazów w każdym załączniku.
  • Teraz przejrzyj obrazy, aby uzyskać informacje o każdym obrazie, używając klasy PageImageArea.

Poniższy kod źródłowy pokazuje, jak wyodrębnić dane obrazów z plików zawartych w plikach ZIP w Javie.

// Wyodrębnij informacje o obrazach z pliku w archiwum ZIP w Javie
Parser parser = new Parser("path/archive.zip");
// Wyciągnij załączniki z pojemnika
Iterable<ContainerItem> attachments = parser.getContainer();

// Iteruj po zbiorze encji 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) {
                // Wydrukuj indeks stron, prostokąt i typ obrazu:
                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) 

Uzyskaj bezpłatną licencję API

Możesz uzyskać bezpłatną tymczasową licencję na korzystanie z API bez ograniczeń ewaluacyjnych.

Wniosek

Krótko mówiąc, nauczyłeś się wyodrębniać dane z archiwów ZIP w aplikacjach Java. Ponadto można wyodrębnić obrazy z plików ZIP za pomocą GroupDocs.Parser for Java. Rozpocznij tworzenie aplikacji Java do ekstrakcji danych dla skompresowanych plików. Aby dowiedzieć się więcej o interfejsie API, odwiedź dokumentację. W przypadku pytań skontaktuj się z nami za pośrednictwem forum.

Zobacz też