En este post veremos un ejemplo de como comprimir y descomprimir archivos con el método de compresión GZIP y el paquete de Java java.util.zip.*
java.util.zip: Este paquete ofrece clases para leer y escribir los formatos de archivo ZIP y GZIP estándar. También incluye clases para comprimir y descomprimir datos usando el algoritmo de compresión DEFLATE, que es usado por los formatos de archivo ZIP y GZIP. Además, tiene clases para calcular las sumas de comprobación CRC-32 y Adler-32 de flujos de entrada arbitrarios.
Nuestro proyecto consiste en una clase con dos métodos tanto para comprimir como descomprimir archivos. La clase es la siguiente:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /** * @see https://www.jc-mouse.net * @author mouse */ public class DemoGZIP { private final byte[] BUFFER = new byte[1024]; /** * @param archivo Archivo a comprimir * El archivo se comprime con el mismo nombre del archivo origen seguido de la extension *.zip * @return boolean * TRUE tuvo exito * FALSE no se pudo comprimir */ public boolean comprimir(File archivo) { try (GZIPOutputStream out = new GZIPOutputStream (new FileOutputStream(archivo.getAbsolutePath() + ".zip")); FileInputStream in = new FileInputStream(archivo)) { int len; while ((len = in.read(BUFFER)) != -1) { out.write(BUFFER, 0, len); } out.close(); } catch (IOException ex) { System.err.println(ex.getMessage()); return false; } return true; } /** * @param archivo Archivo a comprimir de la forma archivo.extension.zip * @return boolean * TRUE tuvo exito * FALSE no se pudo descomprimir */ public boolean descomprimir(File archivo) { //extrae la extension *.zip String salida = archivo.getAbsolutePath().replaceFirst("[.][^.]+$", ""); try (GZIPInputStream in = new GZIPInputStream(new FileInputStream(archivo)); FileOutputStream out = new FileOutputStream(salida)) { int len; while ((len = in.read(BUFFER)) != -1) { out.write(BUFFER, 0, len); } out.close(); } catch (IOException ex) { System.err.println(ex.getMessage()); return false; } return true; } }
Para probar nuestra clase, podemos hacerlo de la siguiente manera:
DemoGZIP demoGZIP = new DemoGZIP(); if(demoGZIP.comprimir(new File("E:\\tmp\\presentacion.pptx"))){ if(demoGZIP.descomprimir(new File("E:\\tmp\\presentacion.pptx.zip"))){ System.out.println("completado..."); } }
Esto creara un archivo comprimido «presentacion.pptx.zip» como podemos ver a continuación
Y si no obtuvimos ningún error la clase comprimirá el archivo y procederá a su descompresión.
enjoy!!!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En este post aprenderemos los pasos básicos para construir una aplicación android con soporte multilenguaje, utilizaremo...
Cuando queremos presentar un programa hecho en java y darle un toque de profesionalidad, a veces no queremos que el clie...
TextToSpeech o TTS, es el sintetizador de voz para android, en los celulares inteligentes viene un motor TTS por defecto...
Hace un par de años atras google para el aniversario del juego de Pacman saco un doodle en su homenaje, ese doodle que s...
1. Dado N números enteros ingresados por teclado, determine el promedio de estos 01 static void Main(string[] args) 02 {...
Segunda y ultima parte del post dedicado a la creación de un microservicio en lenguaje java utilizando el framework Spar...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Google Bard la inteligencia artificial de Google se actualiza con una mejora que entra a competir con el resto de IAs y...