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

Jav*_*ser 6 java file list tar

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

ZipFile zf = new ZipFile("ReadZip.zip");
Enumeration entries = zf.entries();
while (entries.hasMoreElements()) {.....}
Run Code Online (Sandbox Code Playgroud)

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

cra*_*gmj 13

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


pau*_*sm4 -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