【发布时间】:2016-06-08 12:22:46
【问题描述】:
我正在尝试使用 Apache Commons Compress 读取 bz2 文件。
以下代码适用于小文件。 但是对于一个大文件(超过 500MB),它会在读取数千行后结束,没有任何错误。
try {
InputStream fin = new FileInputStream("/data/file.bz2");
BufferedInputStream bis = new BufferedInputStream(fin);
CompressorInputStream input = new CompressorStreamFactory()
.createCompressorInputStream(bis);
BufferedReader br = new BufferedReader(new InputStreamReader(input,
"UTF-8"));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
还有其他读取大型压缩文件的好方法吗?
【问题讨论】:
-
这应该可以工作 - 除非库有一些错误。你能生成一个不太大的测试/示例吗?另一个测试:手动解压缩文件并在
BufferedReader构造行中使用bis而不是input运行相同的代码。 -
您是从控制台使用
main方法运行它吗? (即,您确定没有打印异常吗?您是否尝试在 catch 块中重新抛出异常?)
标签: java compression apache-commons-compress bz2