我想在我的Java程序中列出tar文件的所有条目。这怎么可能 ? 对于zip文件,我可以使用以下代码:
ZipFile zf = new ZipFile("ReadZip.zip");
Enumeration entries = zf.entries();
while (entries.hasMoreElements()) {.....}
但我不确定tar文件。有人可以帮忙吗?我正在使用org.apache.tools.tar.*
答案 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:
如果你必须以编程方式进行,我想Apache Ant API“tar”是一个很好的方法。它为您提供了“TarEntry”列表:
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/apache/tools/tar/TarEntry.html