2010-02-24 19 views
19

je peux décompressez zip, gzip, et les fichiers rar, mais je dois aussi décompresser les fichiers bzip2 ainsi que les décompressez (.tar). Je n'ai pas trouvé une bonne bibliothèque à utiliser.Décompresser BZIP2 archives

J'utilise Java avec Maven si idéalement, je voudrais l'inclure comme une dépendance dans le POM.

Qu'est-ce que les bibliothèques recommandez-vous?

Répondre

35

La meilleure option que je peux voir est Apache Commons Compress avec cette dépendance Maven.

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

De l'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

Pour copier les cours d'eau, vous pouvez également utiliser Apache Commons IO de [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