Los archivos ZIP son uno de los formatos de archivo comprimido más populares y utilizados. La razón principal para usar archivos ZIP es reducir el tamaño total del archivo y enviar varios archivos como un solo archivo. Como desarrollador, puede extraer el texto, las imágenes e incluso los metadatos de los archivos comprimidos en archivos ZIP. En este artículo, discutiremos cómo extraer datos de archivos ZIP en Java.

Extraer datos de archivos ZIP en Java

Los siguientes temas se tratan a continuación:

API de Java para extraer datos de archivos ZIP

GroupDocs.Parser proporciona la solución de análisis de documentos para desarrolladores que también incluye la API de Java. Usaré esta API de Java para extraer datos de archivos ZIP en los ejemplos de este artículo. Además, esta API permite la extracción de datos de imágenes, texto sin procesar, texto estructurado y formateado, y metadatos de una larga lista de formatos de documentos admitidos. Estos formatos de documentos incluyen documentos de procesamiento de texto, PDF, presentaciones, hojas de cálculo, correos electrónicos, bases de datos, libros electrónicos y muchos otros.

Descargar o configurar

Puede descargar el archivo JAR de la sección de descargas, o simplemente obtener las configuraciones de dependencia y repositorio más recientes para el pox.xml de sus aplicaciones Java basadas en 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>

Cómo extraer datos de archivos ZIP en Java

Para extraer los datos de cualquier archivo incluido en el archivo, primero debe obtener todos los archivos adjuntos. Después de eso, puede extraer más cualquier tipo de datos de cada archivo. Los siguientes pasos muestran cómo extraer datos de archivos ZIP y recuperar texto de cada archivo adjunto en Java.

  • Cargue el archivo ZIP usando la clase Parser.
  • Extrae la colección de adjuntos usando el método getContainer.
  • Recorrer los archivos adjuntos para los datos de cada archivo adjunto.
  • Puede obtener sus diferentes tipos de datos utilizando los métodos respectivos de la clase Parser.

El código fuente muestra cómo extraer los datos de los archivos ZIP usando Java. El siguiente ejemplo extrae el texto completo de todos los archivos dentro del archivo ZIP.

// Extraer datos de archivos ZIP en Java
Parser parser = new Parser("path/archive.zip");
// Extraer archivos adjuntos del contenedor
Iterable<ContainerItem> attachments = parser.getContainer();

// Iterar sobre la colección de entidades ZIP
for (ContainerItem item : attachments) {
    // Imprima la INFORMACIÓN DEL ARCHIVO
    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.");
    }
}

La salida del código fuente anterior muestra el texto recuperado de uno de los archivos PDF dentro del archivo 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 

Extraiga imágenes de archivos dentro de archivos ZIP en Java

No se limita solo al texto, también puede extraer de manera similar la información de las imágenes. Los siguientes pasos muestran cómo extraer datos de archivos ZIP y recuperar información de imágenes de cada archivo adjunto.

  • Cargue el archivo ZIP usando la clase Parser.
  • Extrae la colección de adjuntos usando el método getContainer.
  • Recorra los archivos adjuntos para obtener la colección de imágenes dentro de cada archivo adjunto.
  • Ahora recorra las imágenes para obtener la información de cada imagen usando la clase PageImageArea.

El siguiente código fuente muestra cómo extraer datos de imágenes de los archivos incluidos en los archivos ZIP en Java.

// Extraiga información de imágenes del archivo dentro del archivo ZIP en Java
Parser parser = new Parser("path/archive.zip");
// Extraer archivos adjuntos del contenedor
Iterable<ContainerItem> attachments = parser.getContainer();

// Iterar sobre la colección de entidades 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) {
                // Imprima un índice de página, un rectángulo y un tipo de imagen:
                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) 

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar la API sin las limitaciones de evaluación.

Conclusión

En resumen, ha aprendido a extraer datos de archivos ZIP dentro de sus aplicaciones Java. Además, también puede extraer imágenes de los archivos ZIP utilizando GroupDocs.Parser para Java. Comience a crear su aplicación Java de extracción de datos para archivos comprimidos. Para obtener más información sobre la API, visite la documentación. Para consultas, contáctenos a través del foro.

Ver también