解压缩BZIP2存档

20 java compression api bzip2

我可以解压缩zip,gzip和rar文件,但我还需要解压缩bzip2文件以及解压缩它们(.tar).我没有遇到过一个好的图书馆.

我正在使用Java和Maven,所以理想情况下,我想将它作为POM中的依赖项包含在内.

你推荐哪些图书馆?

cle*_*tus 37

我能看到的最佳选择是具有Maven依赖性的Apache Commons Compress.

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-compress</artifactId>
  <version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

示例:

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();
Run Code Online (Sandbox Code Playgroud)

  • 要复制流,您还可以使用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). (2认同)