在java中迭代tar.gz
我有一个tar.gz文件,其中包含大量略少于1.5mno子目录的小xml文件。 现在我想迭代这些,我正试图使用ApacheCommonsCompress来实现这一点。我不想像在类似主题中经常看到的那样,向新文件输出或写入任何内容。我只想以增量方式阅读信息,完美的做法是能够在某一点停止,然后继续运行另一个程序,但这是次要的 因此,对于初学者,我认为应该从小处着手,比如计数器只是为了测试目的而存在,以减少时间:在java中迭代tar.gz,java,Java,我有一个tar.gz文件,其中包含大量略少于1.5mno子目录的小xml文件。 现在我想迭代这些,我正试图使用ApacheCommonsCompress来实现这一点。我不想像在类似主题中经常看到的那样,向新文件输出或写入任何内容。我只想以增量方式阅读信息,完美的做法是能够在某一点停止,然后继续运行另一个程序,但这是次要的 因此,对于初学者,我认为应该从小处着手,比如计数器只是为了测试目的而存在,以减少时间: public static void readTar(String in) throws
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的结果总是空的,所以我不能处理它的内容,而entry.getName返回预期的结果
如果有人能指出我的错误,我会很高兴。对getFile方法的解释基本上是说,它对于从存档中读取的条目没有用处 我相信你需要使用阅读:
当我弄清楚库是如何工作时,我要做的另一件事是链接源代码并查看库代码,以了解在后台实际发生的事情。对getFile方法的解释基本上是说,它对于从存档中读取的条目没有用 我相信你需要使用阅读:
在了解库如何工作时,我要做的另一件事是链接源代码并查看库代码,以了解引擎盖下实际发生的情况。下面是一个读取tar文件的示例:良好的参考!非常感谢。解释了要解决最初的问题必须做些什么,这就是为什么我认为这应该是公认的答案。如果你把它和相关的代码片段一起发布,我会接受的。否则,我会在几天内完成这项工作,这样相关的代码就会出现在一个答案中,而不仅仅是一个供将来参考的链接!非常感谢。解释了要解决最初的问题必须做些什么,这就是为什么我认为这应该是公认的答案。如果你把它和相关的代码片段一起发布,我会接受的。否则,我会在几天内完成这项工作,因此相关代码会出现在一个答案中,而不仅仅是一个供将来参考的链接。真为我感到羞耻!我被TarArchiveEntry的类文档弄糊涂了,我在问自己如何正确地构造,这样我就不用费心去研究方法文档了,因为它对我来说是绝对清楚的。好的建议。顺便说一句,我仍然倾向于忘记查看库的源代码通常是有用的!我真丢脸!我被TarArchiveEntry的类文档弄糊涂了,我在问自己如何正确地构造,这样我就不用费心去研究方法文档了,因为它对我来说是绝对清楚的。好的建议。顺便说一句,我仍然倾向于忘记查看库的源代码通常是有用的!