2011-01-29 5 views
10

Tengo un archivo BZ2 bastante grande que contiene varios archivos de texto. ¿Es posible para mí usar Java para descomprimir ciertos archivos dentro del archivo BZ2 y descomprimir/analizar los datos sobre la marcha? Digamos que un archivo de 300mb BZ2 contiene 1 GB de texto. Idealmente, me gustaría que mi programa Java diga leer 1 mb del archivo BZ2, descomprimirlo sobre la marcha, actuar sobre él y seguir leyendo el archivo BZ2 para obtener más información. ¿Es eso posible?Java: lea el archivo BZ2 y descomprima/analice sobre la marcha

Gracias

+1

'¿Es eso possible' - sí :) – bestsss

Respuesta

2

El proyecto hormiga contiene una biblioteca bzip2. Que tiene una clase org.apache.tools.bzip2.CBZip2InputStream. Puede usar esta clase para descomprimir el archivo bzip2 sobre la marcha: simplemente amplía la clase estándar Java InputStream.

+0

Esta biblioteca didn' Reconozco mi formato bzip2. Tuve que usar commons-compress. – suhprano

19

La biblioteca commons-compress de apache es bastante buena. Aquí está su página de muestras: http://commons.apache.org/proper/commons-compress/examples.html

Aquí está el último experto fragmento:

<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-compress</artifactId> 
    <version>1.10</version> 
</dependency> 

Y aquí es mi método util:

+1

Nota: los formatos aceptados son: gzip, bzip2, xz, lzma, Pack200, DEFLATE y Z. Como se ve en el enlace, se asigna automáticamente el correcto – Danielson

Cuestiones relacionadas