【问题标题】:Extract tgz with subfolders java提取带有子文件夹 java 的 tgz
【发布时间】:2016-07-03 00:28:44
【问题描述】:

我有一个文件archive.tgz,它由几个存储xml 文件的子文件夹组成。我想遍历所有文件并解析 xml 文件。文件目录结构如下。

01/
    01.xml
    02.xml
02/
    03.xml

这是我已经尝试过的 Java 代码,但是当我尝试 getFile 方法时,文件始终为零。我还尝试从其中一个条目中获取目录并从中获取子文件并从绝对路径中获取文件。

    while ((entry = (TarArchiveEntry) tarIn.getNextEntry()) != null) {
        if (entry.isFile()) {
            entry.getFile();
            // Parse xml but this is null
        }
    }

【问题讨论】:

    标签: java compression gzip tar


    【解决方案1】:

    TarArchiveEntry#getFile 做不到。相反,请尝试使用TarArchiveInputStream 来读取数据:

    byte[] data = new byte[(int) entry.getSize()];
    tarIn.read(data);
    

    得到data后,就可以解析你的xml了。

    【讨论】: