Как перечислить все записи файла tar в Java? - PullRequest
6 голосов
/ 12 января 2012

Я хочу перечислить все записи файла tar в моей программе Java.Как это возможно ?Для zip-файлов я могу использовать следующий код:

ZipFile zf = new ZipFile("ReadZip.zip");
Enumeration entries = zf.entries();
while (entries.hasMoreElements()) {.....}

Но я не уверен в tar-файлах.Кто-нибудь может помочь?Я использую org.apache.tools.tar.*

Ответы [ 4 ]

13 голосов
/ 12 января 2012

Apache Commons Compress (http://commons.apache.org/compress/) прост в использовании.

Вот пример чтения записей tar:

import java.io.FileInputStream;

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;

public class Taread {
    public static void main(String[] args) {
        try {
            TarArchiveInputStream tarInput = new TarArchiveInputStream(new FileInputStream(args[0]));
            TarArchiveEntry entry;
            while (null!=(entry=tarInput.getNextTarEntry())) {
                System.out.println(entry.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
2 голосов
/ 12 января 2012

Этот API очень похож на использование собственного Java ZipInputStream .

Для начала:

TarInputStream tis = new TarInputStream(new FileInputStream("myfile.tar"));
try
{
    TarEntry entry;
    do
    {
        entry = tis.getNextEntry();

        //Do something with the entry
    }
    while (entry != null);
}
finally
{
    tis.close();
}

More examples with different APIs are [here][2].
0 голосов
/ 12 января 2012

вы использовали код ZIP-файла для перечисления каталогов ....

tar-файл для linux, вы можете проверить

http://www.java2s.com/Code/Java/File-Input-Output/TapeArchiveListerTarfile.htm

для дальнейших ссылок....

0 голосов
/ 12 января 2012

Чтобы прочитать файл Java .jar, вы можете использовать инструмент "jar" ... или распаковать. Файлы .Jar имеют формат .Zip.

Однако, чтобы прочитать * nix .tar файл, вам нужно использовать инструмент "tar".

Если вы используете Windows, я бы посоветовал вам попробовать 7-Zip. Это удобный инструмент, который распознает миллионы форматов ... включая .zip (отсюда и .jar) и tar:

http://www.7 -zip.org /

Если вам нужно сделать это программно, я думаю, что Apache Ant API "tar" - это хороший путь. Выдает список «TarEntry»:

http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/apache/tools/tar/TarEntry.html

...