如何在java中列出tar文件的所有条目?

时间:2012-01-12 06:01:51

标签: java list file tar

我想在我的Java程序中列出tar文件的所有条目。这怎么可能 ? 对于zip文件,我可以使用以下代码:

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

但我不确定tar文件。有人可以帮忙吗?我正在使用org.apache.tools.tar.*

4 个答案:

答案 0 :(得分:12)

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();
        }
    }
}

答案 1 :(得分:2)

此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].

答案 2 :(得分:0)

您正在使用ZIP文件代码列出目录....

linux的tar文件你可以看看

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

进一步参考....

答案 3 :(得分:-3)

要读取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