Archivy ZIP jsou jedním z nejoblíbenějších a běžně používaných formátů komprimovaných souborů. Hlavním důvodem pro použití souborů ZIP je snížení celkové velikosti souboru a odeslání více souborů jako jednoho archivu. Jako vývojář můžete extrahovat text, obrázky a dokonce i metadata ze souborů, které jsou komprimovány v archivech ZIP. V tomto článku budeme diskutovat o tom, jak extrahovat data archivů ZIP v Java.

Extrahujte data ze souborů ZIP v Java

Níže jsou uvedena následující témata:

Java API pro extrahování dat souborů ZIP

GroupDocs.Parser poskytuje řešení pro analýzu dokumentů pro vývojáře, které také zahrnuje Java API. Budu používat toto Java API k extrahování dat souborů ZIP v příkladech tohoto článku. Navíc toto API umožňuje extrakci dat z obrázků, nezpracovaného textu, strukturovaného a formátovaného textu a metadat z dlouhého seznamu podporovaných formátů dokumentů. Mezi tyto formáty dokumentů patří textové dokumenty, PDF, prezentace, tabulky, e-maily, databáze, elektronické knihy a mnoho dalších.

Stáhnout nebo Konfigurovat

Soubor JAR si můžete stáhnout z části ke stažení nebo si můžete stáhnout nejnovější úložiště a konfigurace závislostí pro pom.xml vašich Java aplikací založených 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 extrahovat data souborů ZIP v Java

Chcete-li extrahovat data z libovolného souboru, který je uzavřen v archivu, musíte nejprve získat všechny přiložené soubory. Poté můžete z každého souboru dále extrahovat jakýkoli druh dat. Následující kroky ukazují, jak extrahovat data souborů ZIP a načíst text z každého přiloženého souboru v Java.

  • Načtěte archiv ZIP pomocí třídy Parser.
  • Extrahujte kolekci příloh pomocí metody getContainer.
  • Projděte přílohy pro data každého přiloženého souboru.
  • Jeho různé druhy dat můžete získat pomocí příslušných metod třídy Parser.

Zdrojový kód ukazuje, jak extrahovat data souborů ZIP pomocí Java. Níže uvedený příklad extrahuje celý text ze všech souborů v archivu ZIP.

// Extrahujte data archivů ZIP v Java
Parser parser = new Parser("path/archive.zip");
// Vyjměte přílohy z nádoby
Iterable<ContainerItem> attachments = parser.getContainer();

// Iterujte sbírku entit ZIP
for (ContainerItem item : attachments) {
    // Vytiskněte FILE INFO
    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.");
    }
}

Výstup výše uvedeného zdrojového kódu zobrazuje načtený text jednoho ze souborů PDF v souboru 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 

Extrahujte obrázky ze souborů v souborech ZIP v Java

Není omezeno pouze na text, můžete také získat informace o obrázcích. Následující kroky ukazují, jak extrahovat data souborů ZIP a načíst informace o obrázcích z každého přiloženého souboru.

  • Načtěte archiv ZIP pomocí třídy Parser.
  • Extrahujte kolekci příloh pomocí metody getContainer.
  • Procházejte přílohy, abyste získali kolekci obrázků v každé příloze.
  • Nyní procházejte obrázky a získejte informace o každém obrázku pomocí třídy PageImageArea.

Následující zdrojový kód ukazuje, jak extrahovat data obrázků ze souborů uzavřených v souborech ZIP v Java.

// Extrahujte informace o obrázcích ze souboru v archivu ZIP v Java
Parser parser = new Parser("path/archive.zip");
// Vyjměte přílohy z nádoby
Iterable<ContainerItem> attachments = parser.getContainer();

// Iterujte sbírku entit 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) {
                // Tisk indexu stránky, obdélníku a typu obrázku:
                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) 

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci k používání API bez omezení hodnocení.

Závěr

Stručně řečeno, naučili jste se, jak extrahovat data z archivů ZIP ve vašich aplikacích Java. Navíc můžete také extrahovat obrázky ze souborů ZIP pomocí GroupDocs.Parser for Java. Začněte budovat svou Java aplikaci pro extrakci dat pro komprimované soubory. Chcete-li se dozvědět více o API, navštivte dokumentaci. V případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také