作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 .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/
我是一名优秀的程序员,十分优秀!