Java 解压缩BZIP2归档文件

Java 解压缩BZIP2归档文件,java,api,compression,bzip2,Java,Api,Compression,Bzip2,我可以解压zip、gzip和rar文件,但我还需要解压bzip2文件以及解压它们(.tar)。我还没有找到一个好的图书馆 我将Java与Maven一起使用,因此理想情况下,我希望将其作为一个依赖项包含在POM中 您推荐什么库?我能看到的最佳选择是使用此Maven依赖项 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</art

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

我将Java与Maven一起使用,因此理想情况下,我希望将其作为一个依赖项包含在POM中


您推荐什么库?

我能看到的最佳选择是使用此Maven依赖项

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

请不要忘记使用缓冲流来获得高达3倍的加速比

public void decompressBz2(String inputFile, String outputFile) throws IOException {
    var input = new BZip2CompressorInputStream(new BufferedInputStream(new FileInputStream(inputFile)));
    var output = new FileOutputStream(outputFile);
    try (input; output) {
        IOUtils.copy(input, output);
    }
}

decompressBz2("example.bz2", "example.txt");

要复制流,还可以使用ApacheCommons IO。
public void decompressBz2(String inputFile, String outputFile) throws IOException {
    var input = new BZip2CompressorInputStream(new BufferedInputStream(new FileInputStream(inputFile)));
    var output = new FileOutputStream(outputFile);
    try (input; output) {
        IOUtils.copy(input, output);
    }
}

decompressBz2("example.bz2", "example.txt");
dependencies {
    ...
    implementation("org.apache.commons:commons-compress:1.20")
}