Распаковать архив BZIP2 - PullRequest
19 голосов
/ 24 февраля 2010

Я могу распаковать файлы zip, gzip и rar, но мне также нужно распаковать файлы bzip2 и разархивировать их (.tar). Я не нашел хорошую библиотеку для использования.

Я использую Java вместе с Maven, поэтому в идеале я хотел бы включить его в качестве зависимости в POM.

Какие библиотеки вы рекомендуете?

1 Ответ

36 голосов
/ 24 февраля 2010

Лучший вариант, который я вижу, это Apache Commons Compress с этой зависимостью Maven.

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

Из примеров :

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();
...