我必须实现一个允许在tar.gz文件中打印所有文件内容的应用程序。如何使用Java打印tar.gz文件的内容?
例如:
如果我有一个名为testx文件夹中的三个文件是这样的:
A.TXT包含文字“天佑女王”
B.txt包含文字“育碧MAIOR,轻微cessat “
C.txt.gz是一个用gzip压缩的文件,其中包含文件c.txt,文字为”Hello America !!“
于是我压缩testx,得到压缩的tar文件:testx.tar.gz。
与我的Java应用程序所以我想在控制台打印:
“天佑女王”
“育碧MAIOR,轻微cessat”
“你好美!”
我已经实现了ZIP版本,它工作的很好,但是从apache ant http://commons.apache.org/compress/保留tar库,我注意到它不像ZIP java utils那样简单。
有人可以帮助我吗?
我已经开始寻找在网络上了解如何实现我的目标,所以我有以下代码:
GZIPInputStream gzipInputStream=null;
gzipInputStream = new GZIPInputStream(new FileInputStream(fileName));
TarInputStream is = new TarInputStream(gzipInputStream);
TarEntry entryx = null;
while((entryx = is.getNextEntry()) != null) {
if (entryx.isDirectory()) continue;
else {
System.out.println(entryx.getName());
if (entryx.getName().endsWith("txt.gz")){
is.copyEntryContents(out);
// out is a OutputStream!!
}
}
}
在该行
is.copyEntryContents(out)
因此,可以保存在一个文件流传递一个OutputStream,但我不想要它!在保留第一个条目ZipEntry后的zip版本中,我们可以从压缩的根文件夹testx.tar.gz中提取流,然后创建一个新的ZipInputStream并使用它来获取内容。
是否可以用tar.gz文件做到这一点?
谢谢。
相关:[如何在java中压缩/解压缩tar.gz文件](http://stackoverflow.com/questions/7128171/how-to-compress-decompress-tar-gz-files-in-java) – 2011-08-24 15:50:49