Programa Java para leer e imprimir todos los archivos desde un archivo zip

Un archivo zip es un archivo donde uno o más archivos se comprimen juntos, generalmente, los archivos zip son ideales para almacenar archivos grandes. Aquí, el archivo zip primero leerá y al mismo tiempo imprimirá el contenido de un archivo zip usando un programa java usando la clase java.util.zip.ZipEntry para marcar el archivo zip y después de leerlo, se imprimirá el contenido dentro . Si en el caso, el archivo zip no se encuentra, el código generará una excepción de entrada-salida que FileNotFoundException

Ilustración:

Considerando un sistema que almacena un archivo zip llamado

  • geekforgeeks.zip en la unidad D en el sistema operativo Windows
  • D:/geeks.zip en el sistema operativo Windows
  • Archive.zip en el sistema operativo macOS

Caso 1: geekforgeeks.zip

Input  : D:/geekforgeeks.zip
Output : The files in the Zip are as follows:
         Java program to print a number.java
         Java program to print your name.java
         Java program to calculate.java
         Java program to print a pattern.java

Ahora bien, si un sistema no almacena el archivo zip específico ingresado por el usuario, el código generará una excepción e imprimirá un mensaje de que no se ha encontrado el archivo.

Caso 2: D:/geeks.zip

Input  :  D:/geeks.zip
Output : java.io.FileNotFoundException: D:/geeks.zip (The system cannot find the file specified)

Caso 3: Archivo.zip

Es lo mismo que el caso 1 por lo que reservándonos esto para la parte de implementación solo en el diferente sistema operativo como se muestra en el ejemplo con mayor profundidad.

Acercarse

  • Tome la ubicación del archivo zip como entrada en el método principal.
  • La ubicación del archivo zip ahora se envía al método.
  • En el método, se lee el archivo y se imprime su contenido.
  • Si en caso de que no se encuentre el archivo, el código arrojaría una excepción.

Ejemplo

Java

// Java program to read and print all files
// from a zip file
 
// Importing input output classes
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
// Importing zip classes and Scanner class
// from java.util package
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
 
// Class to Read and print the Zip Files
public class GFG {
 
    // Function to read and print the file names.
    public void printFileContent(String filePath)
    {
 
        // Creating objects for the classes and
        // initializing them to null
        FileInputStream fs = null;
        ZipInputStream Zs = null;
        ZipEntry ze = null;
 
        // Try block to handle if exception occurs
        try {
 
            // Display message when program compiles
            // successfully
            System.out.println(
                "Files in the zip are as follows: ");
 
            fs = new FileInputStream(filePath);
            Zs = new ZipInputStream(
                new BufferedInputStream(fs));
 
            // Loop to read and print the zip file name till
            // the end
            while ((ze = Zs.getNextEntry()) != null) {
                System.out.println(ze.getName());
            }
 
            // Closing the file connection
            Zs.close();
        }
 
        // Catch block to handle if any exception related
        // to file handling occurs
        catch (FileNotFoundException fe) {
 
            // Print the line line and exception
            // of the program where it occurred
            fe.printStackTrace();
        }
 
        // Catch block to handle generic exceptions
        catch (IOException ie) {
 
            // Print the line line and exception
            // of the program where it occurred
            ie.printStackTrace();
        }
    }
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an object of the file
        GFG zf = new GFG();
 
        // Taking input of the zip file from local directory
        // Name of the zip file to be read should be entered
        Scanner sc = new Scanner(System.in);
 
        // Display message asking user to enter
        // zip file local directory
        System.out.println(
            "Enter the location of the zip file: ");
        String str = sc.nextLine();
 
        // Print the zip files(compressed files)
        zf.printFileContent(str);
    }
}

Producción:  

Archivo zip elegido: Archive.zip

Directorio de archivos comprimidos en la computadora local: /Users/mayanksolanki/Desktop/Job/Geekathon/Archive.zip

Como se ve arriba, el siguiente archivo zip imprime 5 archivos en su interior. (Todas las imágenes en formato .png) 

Los archivos en el zip son los siguientes: 

Q1.Vaidik.Prueba2.png

__MACOSX/._Q1.Vaidik.Prueba2.png

Q2.Vaidik.Rry1.Salida.png

__MACOSX/._Q2.Vaidik.Rry1.Salida.png

Q2.Vaidik.Prueba2.png

__MACOSX/._Q2.Vaidik.Prueba2.png

Q4.Vaidik.OSI.png

__MACOSX/._Q4.Vaidik.OSI.png

Q12Vaidik.Prueba1.png

__MACOSX/._Q12Vaidik.Prueba1.png

Publicación traducida automáticamente

Artículo escrito por debjani1413 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *