【发布时间】:2018-11-09 17:59:53
【问题描述】:
我有一个 tar.gz 文件,其中包含大量的小 xml 文件(略小于 1.5m)(没有子目录)。 现在我想遍历这些,我正在尝试使用 apache commons compress 来实现这一点。我不想像在类似主题中经常看到的那样向新文件输出或写入任何内容。我只是想逐步阅读信息(完美的是能够在某一点停止并继续运行另一次程序,但这是次要的)。
所以对于初学者来说,我认为我应该从小事做起(计数器只是为了测试目的而存在以减少时间):
public static void readTar(String in) throws IOException {
try (TarArchiveInputStream tarArchiveInputStream =
new TarArchiveInputStream(
new BufferedInputStream(
new GzipCompressorInputStream(
new FileInputStream(in))))){
TarArchiveEntry entry;
int counter = 0;
while ((entry = tarArchiveInputStream.getNextTarEntry()) != null && counter < 1000) {
counter++;
System.out.println(entry.getFile());
}
}
}
但是 entry.getFile() 的结果总是 null,所以我不能处理它的内容,而 entry.getName() strong> 返回预期结果。
如果有人能指出我的错误,我会很高兴。
【问题讨论】:
-
这是一个从 tar 文件读取的示例:thinktibits.blogspot.com/2013/01/…
-
好参考!谢谢!准确地解释了解决最初的问题必须做的事情,这就是为什么我认为这应该是公认的答案。如果您使用相关代码-sn-p 发布它,我会接受。否则我会在几天内这样做,因此相关代码位于答案中,而不仅仅是供将来参考的链接。
标签: java