gpt4 book ai didi

java - 如何在java中读取.gz或.bzip2文件

转载 作者:行者123 更新时间:2023-11-30 03:47:19 24 4
gpt4 key购买 nike

我有 .gz 和 .bzip2 文件,我需要提取并显示它们。我查看了几个地方,其中提到使用 zip4j 实用程序。我可以用它来提取和显示文件吗?请告诉我。

我引用了该帖子Uncompress BZIP2 archive并尝试按如下方式实现,但我不确定要传递给 FileOutputStream 的内容,它给了我一个错误。另外,是否可以在解压缩后创建一个文件对象。请协助。再次感谢您的帮助。

 if (getExtension(filename).equals("bz2")) {
try {
FileInputStream fin = new FileInputStream("C:\\temp\\test.bz2");
BufferedInputStream in = new BufferedInputStream(fin);
FileOutputStream out = new FileOutputStream("archive.tar");
BZip2CompressorInputStream bzIn = new BZip2CompressorInputStream(in);
int buffersize = 1024;
final byte[] buffer = new byte[buffersize];
int n = 0;
while (-1 != (n = bzIn.read(buffer))) {
out.write(buffer, 0, n);
}
out.close();
bzIn.close();
}
catch (Exception e) {
throw new Error(e.getMessage());
}

提前致谢。

~阿克希塔

最佳答案

.gz 文件扩展名表示使用 GZIP 压缩。您可以使用 GZIPInputStream 在 java 7 SDK 中打开 GZIP:http://docs.oracle.com/javase/7/docs/api/java/util/zip/GZIPInputStream.html

据我所知,Java SDK 库不支持 BZIP2 压缩/解压缩,您必须使用第三方库,例如 Apache Commons Compress

您提到的库似乎(从非常简短的角度来看)仅支持 ZIP 格式,而不支持 BZIP2 变体的 GZIP - 这是不同的。

请注意,与 ZIP 压缩不同,GZIP 将所有文件压缩到一个包中 - 因此,如果不解压整个包(或者可能直到达到所需的所有字节),您就无法提取单个文件。

关于java - 如何在java中读取.gz或.bzip2文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com