2010-02-24 27 views
19

Puedo descomprimir archivos zip, gzip y rar, pero también necesito descomprimir archivos bzip2 y desarchivarlos (.tar). No he encontrado una buena biblioteca para usar.Descomprimir el archivo BZIP2

Estoy usando Java junto con Maven por lo que idealmente, me gustaría incluirlo como una dependencia en el POM.

¿Qué bibliotecas me recomiendan?

Respuesta

35

La mejor opción que puedo ver es Apache Commons Compress con esta dependencia de Maven.

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

Desde el examples:

FileInputStream in = new FileInputStream("archive.tar.bz2"); 
FileOutputStream out = new FileOutputStream("archive.tar"); 
BZip2CompressorInputStream bzIn = new BZip2CompressorInputStream(in); 
final byte[] buffer = new byte[buffersize]; 
int n = 0; 
while (-1 != (n = bzIn.read(buffer))) { 
    out.write(buffer, 0, n); 
} 
out.close(); 
bzIn.close(); 
+1

Para copiar los arroyos, también se puede utilizar Apache Commons de [IOUtils.copyLarge] (IO http://commons.apache.org/proper /commons-io/apidocs/org/apache/commons/io/IOUtils.html#copyLarge%28java.io.InputStream,%20java.io.OutputStream%29). – thSoft

Cuestiones relacionadas