Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中迭代tar.gz_Java - Fatal编程技术网

在java中迭代tar.gz

在java中迭代tar.gz,java,Java,我有一个tar.gz文件,其中包含大量略少于1.5mno子目录的小xml文件。 现在我想迭代这些,我正试图使用ApacheCommonsCompress来实现这一点。我不想像在类似主题中经常看到的那样,向新文件输出或写入任何内容。我只想以增量方式阅读信息,完美的做法是能够在某一点停止,然后继续运行另一个程序,但这是次要的 因此,对于初学者,我认为应该从小处着手,比如计数器只是为了测试目的而存在,以减少时间: public static void readTar(String in) throws

我有一个tar.gz文件,其中包含大量略少于1.5mno子目录的小xml文件。 现在我想迭代这些,我正试图使用ApacheCommonsCompress来实现这一点。我不想像在类似主题中经常看到的那样,向新文件输出或写入任何内容。我只想以增量方式阅读信息,完美的做法是能够在某一点停止,然后继续运行另一个程序,但这是次要的

因此,对于初学者,我认为应该从小处着手,比如计数器只是为了测试目的而存在,以减少时间:

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的类文档弄糊涂了,我在问自己如何正确地构造,这样我就不用费心去研究方法文档了,因为它对我来说是绝对清楚的。好的建议。顺便说一句,我仍然倾向于忘记查看库的源代码通常是有用的!