ZIP-archieven zijn een van de meest populaire en meest gebruikte gecomprimeerde bestandsindelingen. De belangrijkste reden voor het gebruik van ZIP-bestanden is om de totale bestandsgrootte te verkleinen en om meerdere bestanden als één archief te verzenden. Als ontwikkelaar kunt u de tekst, afbeeldingen en zelfs metadata extraheren uit de bestanden die zijn gecomprimeerd in ZIP-archieven. In dit artikel bespreken we hoe u ZIP-archieven kunt extraheren in Java.

Extraheer gegevens uit ZIP-bestanden in Java

De volgende onderwerpen komen hieronder aan bod:

Java API om ZIP-bestanden te extraheren

GroupDocs.Parser biedt de oplossing voor het parseren van documenten voor ontwikkelaars, die ook de Java API bevat. Ik zal deze Java API gebruiken om gegevens uit ZIP-bestanden te extraheren in de voorbeelden van dit artikel. Bovendien maakt deze API gegevensextractie mogelijk van afbeeldingen, onbewerkte tekst, gestructureerde en opgemaakte tekst en metadata uit een lange lijst van ondersteunde documentindelingen. Deze documentformaten omvatten tekstverwerkingsdocumenten, PDF, presentaties, spreadsheets, e-mails, databases, eBooks en vele andere.

Downloaden of configureren

U kunt het JAR-bestand downloaden van de downloads-sectie, of gewoon de nieuwste repository- en afhankelijkheidsconfiguraties voor pom.xml van uw maven-gebaseerde Java-applicaties downloaden.

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

Hoe ZIP-bestanden gegevens in Java te extraheren

Om de gegevens te extraheren uit elk bestand dat in het archief is ingesloten, moet u eerst alle ingesloten bestanden ophalen. Daarna kunt u alle soorten gegevens uit elk bestand extraheren. De volgende stappen laten zien hoe u gegevens uit ZIP-bestanden kunt extraheren en tekst kunt ophalen uit elk ingesloten bestand in Java.

  • Laad het ZIP-archief met de klasse Parser.
  • Pak de verzameling bijlagen uit met de methode getContainer.
  • Blader door de bijlagen voor de gegevens van elk ingesloten bestand.
  • U kunt de verschillende soorten gegevens verkrijgen met behulp van de respectieve methoden van de Parser-klasse.

De broncode laat zien hoe de gegevens van de ZIP-bestanden kunnen worden geëxtraheerd met behulp van Java. Het onderstaande voorbeeld extraheert de volledige tekst uit alle bestanden in het ZIP-archief.

// Pak ZIP-archieven uit in Java
Parser parser = new Parser("path/archive.zip");
// Haal bijlagen uit de container
Iterable<ContainerItem> attachments = parser.getContainer();

// Herhaal de verzameling van ZIP-entiteiten
for (ContainerItem item : attachments) {
    // Druk de BESTANDSINFO af
    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.");
    }
}

De uitvoer van de bovenstaande broncode toont de opgehaalde tekst van een van de PDF-bestanden in het ZIP-bestand.

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

Extraheer afbeeldingen uit bestanden in ZIP-bestanden in Java

Niet beperkt tot alleen tekst, u kunt ook op dezelfde manier de afbeeldingsinformatie extraheren. De volgende stappen laten zien hoe u gegevens uit ZIP-bestanden kunt extraheren en afbeeldingsinformatie kunt ophalen uit elk ingesloten bestand.

  • Laad het ZIP-archief met de klasse Parser.
  • Pak de verzameling bijlagen uit met de methode getContainer.
  • Blader door de bijlagen om de verzameling afbeeldingen in elke bijlage te krijgen.
  • Doorloop nu de afbeeldingen om de informatie van elke afbeelding te krijgen met behulp van de klasse PageImageArea.

De volgende broncode laat zien hoe afbeeldingsgegevens kunnen worden geëxtraheerd uit de bestanden die zijn ingesloten in de ZIP-bestanden in Java.

// Haal afbeeldingen uit het bestand in het ZIP-archief in Java
Parser parser = new Parser("path/archive.zip");
// Haal bijlagen uit de container
Iterable<ContainerItem> attachments = parser.getContainer();

// Herhaal de verzameling van ZIP-entiteiten
for (ContainerItem item : attachments) {
    try {
        Parser attachmentParser = item.openParser();
        Iterable<PageImageArea> images = attachmentParser.getImages();
        if (images != null) {
            int imageCount = 1;
            for (PageImageArea image : images) {
                // Druk een pagina-index, rechthoek en afbeeldingstype af:
                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) 

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Kortom, u heeft geleerd hoe u ZIP-archieven kunt extraheren binnen uw Java-applicaties. Bovendien kunt u ook afbeeldingen uit de ZIP-bestanden extraheren met GroupDocs.Parser for Java. Begin met het bouwen van uw Java-toepassing voor gegevensextractie voor gecomprimeerde bestanden. Ga voor meer informatie over de API naar de documentatie. Neem voor vragen contact met ons op via het forum.

Zie ook