Artículos
Java

Generar un fichero GZIP con Java

31/Dic/2006

GZIP es la abreviatura de GNU ZIP. GZIP se basa en el algoritmo Deflate (combinación de los algoritmos LZ77 y Huffman). GZIP solo sirve para comprimir ficheros, pero no los comprime. Esto si que lo hace otras herramientas como ZIP. La idea es utilizar el lenguaje Java para generar un fichero GZIP a partir de un fichero de nuestros discos.

GZIP y ZIP son dos conceptos diferentes. GZIP comprime ficheros, mientras que ZIP comprime y archiva los ficheros.

Lo primero que tenemos que hacer es leer el fichero de origen. Para ello nos apoyaremos en las clases de Java IO. En concreto, FileInputStream.

String inFilename = "fichero.txt";
FileInputStream in = new FileInputStream(inFilename);

A continuación deberemos detallar cuál va a ser el fichero de salida. En este caso nos apoyamos en las clases de Java ZIP de compresión. Usaremos GZIPOutputStream, a la cual le pasaremos por parámetro el fichero de salida, representado por la clase FileOutputStream, esta última de Java IO.

String outFilename = "fichero.gzip";
GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(outFilename));

Esto ya hace que lo que volquemos a GZIPOutputStream sea una codificación GZIP. A si que solo nos quedará ir leyendo del stream de entrada y volcarlo al stream de salida. Para ello nos apoyaremos en un buffer de 1024bytes.

byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
    out.write(buf, 0, len);
}

Ya tenemos todo el contenido volcado sobre la salida comprimida. Solo nos quedará cerrar los ficheros, para eso usamos el método .close().

out.finish();
out.close();

Hay que recordar que siempre que manejamos ficheros con las clases de Java IO se puede producir una excepcion IOException. Así que todo nuestro código deberá ir encerrado entre un bloque try-catch{}.

Código Fuente

Descárgate el código fuente de Generar un fichero GZIP con Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
10 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios