2010-02-24 13 views
19

Posso decomprimere file zip, gzip e rar, ma ho anche bisogno di decomprimere i file bzip2 e di annullarli (.tar). Non ho trovato una buona libreria da usare.Uncompress archivio BZIP2

Sto usando Java insieme a Maven in modo ideale, mi piacerebbe includerlo come dipendenza nel POM.

Quali librerie consigliate?

risposta

35

L'opzione migliore che riesco a vedere è Apache Commons Compress con questa dipendenza Maven.

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

Dal 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

Per copiare i corsi d'acqua, è anche possibile utilizzare Apache Commons IO [IOUtils.copyLarge] (http://commons.apache.org/proper /commons-io/apidocs/org/apache/commons/io/IOUtils.html#copyLarge%28java.io.InputStream,%20java.io.OutputStream%29). – thSoft