comprimir y descomprimir archivos zip en Java

Comprimir y descomprimir archivos zip en Java

Hola que tal, ya con algún tiempo sin escribir en el blog, hoy vengo con esta entrada, en la que vamos aprender a comprimir y descomprimir archivos zip en Java de una manera muy fácil.

Muchas de las veces surge la necesidad de comprimir o descomprimir una gran cantidad de archivos con formato .zip, y hacerlo manualmente nos tardaría algún tiempo, bueno y el hecho de estar comprimiendo uno a uno los archivos suele ser cansado y tedioso, es por eso que hoy te voy ha dejar un ejemplo de cómo comprimir o descomprimir una gran cantidad de archivos en menos de un 1 minuto, aunque todo dependerá de la cantidad de archivos.

Comprimir archivos con formato zip en Java

Para comprimir archivos en Java se usan 3 librerías principales ZipOutputStream, ZipEntry, FileInputStream seguido de un proceso que lo voy a explicar más adelante.

Para el ejemplo debes crear una carpeta llamada ZIP en el disco C de tu computadora y copiar ahí los archivos que deseas comprimir.

En la línea 38, se crea un buffer temporal en el que va guardar el archivo una vez que se haya comprimido, para esto se le envía en el constructor de la clase ZipOutputStream, el directorio y el nombre que llevará el zip, como en este caso deseo que el zip tenga el mismo nombre del archivo original, es por eso que obtengo la extensión del archivo y luego la remplazo por .zip.

Posteriormente en la línea 41 en el constructor de la clase ZipEntry se le pasa el nombre con el que se quiere que se guarde el archivo dentro del zip, en la siguiente línea el nombre se lo añade al buffer temporal.

Finalmente en la línea 47 se se obtiene el archivo desde la ruta original y entre la línea 50 y 52 se lo añade línea a línea al buffer para finalmente guardarse dentro del zip.

Como último paso se debe cerrar los flujos para que el archivo se comprima correctamente.

Descomprimir archivos con formato zip en Java

Para descomprimir archivos se usan estas 3 librerías: ZipInputStream, ZipEntry, FileOutputStream.

Para el ejemplo debes crear una carpeta llamada UNZIP en el disco C de tu computadora junto con los archivos zip que desees descomprimir.

Esta parte del código no explicaré ya que sigue los mismos pasos que el código para comprimir pero a la inversa y utilizando otras librerías.

Espero que este post haya sido de ayuda, nos vemos en el próximo tutorial. Un Saludo…..

Opt In Image
Programación Web Full Stack
Suscríbete ahora y recibe los mejores contenidos sobre Programación Web en tu correo.

Tus datos estarán protegidos y 100% libre de Spam

Full Stack Developer, JavaScript, PHP, Java, Spring, Laravel, Vuejs, Blogger, aprendiendo y compartiendo conocimientos. Cursos de Programación Web en: https://programacionfullstack.com/

Artículos Recomendados

4 Thoughts to “Cómo comprimir y descomprimir archivos zip en Java”

  1. Raúl

    Buenos dias, tengo unos errores al copiar tu clase principal e implementarla en una clase java. Algunos eran como inicializar las variables en:
    · for de la línea 26 i = por i =0
    · En la línea 41 fos.write(buffer, , leer); por fos.write(buffer, i, leer);
    · En la linea 38 int leer; por int leer = 0;

    Pero en la línea 41 no veo la variable que falta en el while:
    fos.write(buffer, , leer);

    Podrías echarme una mano??

    Gracias por tu tiempo

    1. Elivar Largo

      Hola Raúl, al parecer es un problema del plugin para mostrar código Java, en fin lo que tienes que hacer es darle doble clik dentro del código o a su vez ir a la parte superior donde se muestra el código en la parte derecha superior, escoger la opción copy, de esta forma te mostrará todo el código. Saludos!!!

  2. Disculpa, hay una forma de combinar ambos proyectos en uno solo y si si como se haría, son estudiante de Preparatoria y estoy comenzando a programar y lo comprendo muy bien ??

    Gracias de antemano, Saludos desde Ags, México .

    1. Elivar Largo

      Podrías crear una clase en dónde crees 2 métodos, en uno pondrías el código para comprimir y el otro para descomprimir, finalmente deberías crear un objeto de esa clase para usarlos. Saludos…

Dejar un Comentario