Извлечь ТГЗ с подпапками Java

У меня есть файл 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
        }
    }

1 ответ

TarArchiveEntry#getFile не могу это сделать. Вместо этого попробуйте с TarArchiveInputStream читать данные:

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

После того, как вы получите dataВы можете разобрать свой XML.

Другие вопросы по тегам