Gli archivi ZIP sono uno dei formati di file compressi più popolari e comunemente usati. Il motivo principale per utilizzare i file ZIP è ridurre la dimensione totale del file e inviare più file come un unico archivio. Come sviluppatore, puoi estrarre il testo, le immagini e persino i metadati dai file compressi negli archivi ZIP. In questo articolo, discuteremo di come estrarre i dati degli archivi ZIP in Java.
 
Di seguito vengono trattati i seguenti argomenti:
- API Java per l’estrazione dei dati dai file ZIP.
 - Come estrarre i dati dei file ZIP utilizzando Java.
 - Estrai immagini dai file all’interno di file ZIP in Java
 
API Java per estrarre i dati dei file ZIP
GroupDocs.Parser fornisce la soluzione di analisi dei documenti per gli sviluppatori che include anche l’API Java. Userò questa API Java per estrarre i dati dei file ZIP negli esempi di questo articolo. Inoltre, questa API consente l’estrazione di dati da immagini, testo non elaborato, testo strutturato e formattato e metadati da un lungo elenco di formati di documento supportati. Questi formati di documenti includono documenti di elaborazione testi, PDF, presentazioni, fogli di calcolo, e-mail, database, eBook e molti altri.
Scarica o configura
Puoi scaricare il file JAR dalla sezione download, o semplicemente ottenere l’ultimo repository e le configurazioni delle dipendenze per il pom.xml delle tue applicazioni Java basate su 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>
Come estrarre i dati dei file ZIP in Java
Per estrarre i dati da qualsiasi file racchiuso nell’archivio, devi prima ottenere tutti i file allegati. Successivamente, puoi estrarre ulteriormente qualsiasi tipo di dati da ciascun file. I passaggi seguenti mostrano come estrarre i dati dei file ZIP e recuperare il testo da ciascun file racchiuso in Java.
- Carica l’archivio ZIP utilizzando la classe Parser.
 - Estrai la raccolta di allegati utilizzando il metodo getContainer.
 - Attraversare gli allegati per i dati di ogni file allegato.
 - Puoi ottenere i diversi tipi di dati utilizzando i rispettivi metodi della classe Parser.
 
Il codice sorgente mostra come estrarre i dati dei file ZIP utilizzando Java. L’esempio seguente estrae l’intero testo da tutti i file all’interno dell’archivio ZIP.
// Estrai i dati degli archivi ZIP in Java
Parser parser = new Parser("path/archive.zip");
// Estrarre gli allegati dal contenitore
Iterable<ContainerItem> attachments = parser.getContainer();
// Iterare sulla raccolta di entità ZIP
for (ContainerItem item : attachments) {
    // Stampa le INFORMAZIONI SUL 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.");
    }
}
L’output del codice sorgente di cui sopra mostra il testo recuperato di uno dei file PDF all’interno del 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 
Estrai immagini da file all’interno di file ZIP in Java
Non limitato al solo testo, puoi anche estrarre in modo simile le informazioni sulle immagini. I passaggi seguenti mostrano come estrarre i dati dei file ZIP e recuperare le informazioni sulle immagini da ciascun file allegato.
- Carica l’archivio ZIP utilizzando la classe Parser.
 - Estrai la raccolta di allegati utilizzando il metodo getContainer.
 - Attraversa gli allegati per ottenere la raccolta di immagini all’interno di ciascun allegato.
 - Ora attraversa le immagini per ottenere le informazioni di ciascuna immagine utilizzando la classe PageImageArea.
 
Il codice sorgente seguente mostra come estrarre i dati delle immagini dai file racchiusi nei file ZIP in Java.
// Estrai le informazioni sulle immagini dal file all'interno dell'archivio ZIP in Java
Parser parser = new Parser("path/archive.zip");
// Estrarre gli allegati dal contenitore
Iterable<ContainerItem> attachments = parser.getContainer();
// Iterare sulla raccolta di 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) {
                // Stampa un indice di pagina, un rettangolo e un tipo di immagine:
                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) 
Ottieni una licenza API gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.
Conclusione
In breve, hai imparato come estrarre i dati degli archivi ZIP all’interno delle tue applicazioni Java. Inoltre, puoi anche estrarre immagini dai file ZIP utilizzando GroupDocs.Parser for Java. Inizia a creare la tua applicazione Java per l’estrazione dei dati per i file compressi. Per ulteriori informazioni sull’API, visita la documentazione. Per domande, contattaci tramite il forum.