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