/ / Java - Lea el archivo BZ2 y descomprima / analice sobre la marcha - java, compresión, io

Java - Lea el archivo BZ2 y descomprima / analice sobre la marcha - java, compresión, io

Tengo un archivo BZ2 bastante grande que con variosarchivos de texto en el mismo. ¿Puedo usar Java para descomprimir ciertos archivos dentro del archivo BZ2 y descomprimir / analizar los datos sobre la marcha? Digamos que un archivo BZ2 de 300 mb contiene 1 GB de texto. Lo ideal es que mi programa Java diga que lea 1 MB del archivo BZ2, descomprímalo sobre la marcha, actúe y siga leyendo el archivo BZ2. mas datos ¿Es eso posible?

Gracias

Respuestas

20 para la respuesta № 1

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 fragmento de maven:

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

Y aquí está mi método util:

public static BufferedReader getBufferedReaderForCompressedFile(String fileIn) throws FileNotFoundException, CompressorException {
FileInputStream fin = new FileInputStream(fileIn);
BufferedInputStream bis = new BufferedInputStream(fin);
CompressorInputStream input = new CompressorStreamFactory().createCompressorInputStream(bis);
BufferedReader br2 = new BufferedReader(new InputStreamReader(input));
return br2;
}

2 para la respuesta № 2

El proyecto Ant contiene un bzip2 biblioteca. Que tiene un org.apache.tools.bzip2.CBZip2InputStream clase. Puede usar esta clase para descomprimir el archivo bzip2 sobre la marcha, simplemente extiende el estándar de Java InputStream clase.