Java技巧:查看.tar文件

ZDNet软件频道 时间:2002-12-02 作者:BUILDER.COM |  我要评论()
本文关键词:javatips
Java API提供了解压缩GZIP和ZIP文件的功能。然而还有许多其他的压缩格式它并不支持。其中一种最普通格式就是TAR文档格式。本文我们介绍一个可以通过Java来读.tar文件的API。

Java API提供了解压缩GZIP和ZIP文件的功能。然而还有许多其他的压缩格式它并不支持。其中一种最普通格式就是TAR文档格式。这里有一个可以通过Java来读.tar文件的API。


Ice Tar API和java.util.zip API的使用方法很相似。一个.tar文件通过TarInputStream被读取为一系列TarEntry对象。一个TarEntry对象具有多种运算和特征信息,包括名称,是否是个目录,以及它所包含的数据。


以下是一个简单的代码片断:

String filename = "somefile.tar";
 String directory = "somedirectory/";
 OutputStream out = null;
 try {
 // open up the .tar file
 TarInputStream in = new TarInputStream
( new FileInputStream(
new File(filename) )
 );
 TarEntry entry = null;
 // loop over each file/directory in the .tar
 while( (entry = in.getNextEntry()) != null) {
 // ignore directories
 if(entry.isDirectory()) {
 continue;
 }
 // create a file to output to
 File outfile = new File
(directory+entry.getName());
 // make any missing directories
 new File(outfile.getParent()).mkdirs();
  // create an output stream to write to
 out = new BufferedOutputStream
( new FileOutputStream( outfile ) );
 // write out the tar-entry
 int x = 0;
 while( (x = in.read()) != -1) {
 out.write(x);
 }
 out.close();
 }
 in.close();
 } catch(IOException ioe) {
 ioe.printStackTrace();
 // close off streams etc..
 }

下面介绍一个有用的指令:File.mkdirs()。我们来假设一个路径:

/home/javauser/com/generationjava/files/Example.java

事实上,现在只有/home/javauser/是已经存在的,那么mkdirs()将生成com/, generationjava/, 和 files/这些目录。

Ice Tar API使得应用Java的人不仅仅可以处理ZIP文档,而且还可以处理其他格式的文档。通过把java.util.zip.GzipInputStream应用到Ice Tar API中,tar.gz文件就可以很容易的读取了。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134