求java解析tar.Z? 另附上java对zip、tar.gz、 tar.bz、 tar的解压。

问题描述

使用java代码解tar.Z文件,程序最终跑在windows上面,不排除以后客户迁移,所以不能使用java调用系统命令的方式解压,只能通过代码来解压。java内部支持解压格式太少,后来使用apache.commons.compress解压了zip、tar.gz、 tar.bz、 tar。但是还是没有找到tar.Z怎么解压,求教高手,帮忙解答。下面是zip、tar.gz、 tar.bz、 tar几种格式的解压。        public List<String> list(InputStream inputStream, boolean isCloseStream) throws IOException { List<String> list = new ArrayList<String>(); ArchiveInputStream in = null; try { in = new ArchiveStreamFactory().createArchiveInputStream("tar", new BufferedInputStream(inputStream)); TarArchiveEntry entry = null; while ((entry = (TarArchiveEntry) in.getNextEntry()) != null) { list.addAll(FileFach.parserEveryFile(entry.getName().replaceAll("\\", "/"), in)); } } catch (ArchiveException e) { throw new ExtractorException(ErrorType.UNSUPPORTED_FILE_TYPE, e); } finally { if (isCloseStream) { IOUtils.closeQuietly(in); IOUtils.closeQuietly(inputStream); } } return list; } public List<String> list(InputStream inputStream, boolean isCloseStream) throws IOException { List<String> list = new ArrayList<String>(); ArchiveInputStream in = null; GZIPInputStream gis = null; try { gis = new GZIPInputStream(new BufferedInputStream(inputStream)); in = new ArchiveStreamFactory().createArchiveInputStream("tar", gis); TarArchiveEntry entry = null; while ((entry = (TarArchiveEntry) in.getNextEntry()) != null) { list.addAll(FileFach.parserEveryFile(entry.getName().replaceAll("\\", "/"), in)); } entry = null; } catch (ArchiveException e) { throw new ExtractorException(ErrorType.UNSUPPORTED_FILE_TYPE, e); } finally { if (isCloseStream) { IOUtils.closeQuietly(gis); IOUtils.closeQuietly(inputStream); IOUtils.closeQuietly(in); } } return list; } public List<String> list(InputStream inputStream, boolean isCloseStream) throws IOException { List<String> list = new ArrayList<String>(); ArchiveInputStream in = null; try { in = new ArchiveStreamFactory().createArchiveInputStream("tar", new BZip2CompressorInputStream(inputStream)); TarArchiveEntry entry = null; while ((entry = (TarArchiveEntry) in.getNextEntry()) != null) { list.addAll(FileFach.parserEveryFile(entry.getName().replaceAll("\\", "/"), in)); } } catch (ArchiveException e) { throw new ExtractorException(ErrorType.UNSUPPORTED_FILE_TYPE, e); } finally { if (isCloseStream) { IOUtils.closeQuietly(in); IOUtils.closeQuietly(inputStream); } } return list; } public List<String> list(InputStream inputStream, boolean isCloseStream) throws IOException { List<String> list = new ArrayList<String>(); ArchiveInputStream in = null; try { in = new ArchiveStreamFactory().createArchiveInputStream("zip", new BufferedInputStream(inputStream)); ZipArchiveEntry entry = null; while ((entry = (ZipArchiveEntry) in.getNextEntry()) != null) { list.addAll(FileFach.parserEveryFile(entry.getName().replaceAll("\\", "/"), in)); } } catch (ArchiveException e) { throw new ExtractorException(ErrorType.UNSUPPORTED_FILE_TYPE, e); } finally { if (isCloseStream) { IOUtils.closeQuietly(inputStream); IOUtils.closeQuietly(in); } } return list; }

解决方案

1http://download.csdn.net/detail/xuxiaoliang/44660302http://www.example-code.com/java/untar_Z.asp

时间: 2024-09-13 14:58:15

求java解析tar.Z? 另附上java对zip、tar.gz、 tar.bz、 tar的解压。的相关文章

文件上传-不同机器压缩的zip压缩包,在上传文件解压后存在乱码,求帮忙分析分析

问题描述 不同机器压缩的zip压缩包,在上传文件解压后存在乱码,求帮忙分析分析 有的机器的压缩包上传解压后没问题,有的上传解压后有中文乱码,不知道这是不是跟操作系统有关系

zip文件-URLDownloadToFile下载的zip压缩包无法解压!是什么情况,求大虾指教!!

问题描述 URLDownloadToFile下载的zip压缩包无法解压!是什么情况,求大虾指教!! 创建了一个线程,在线程里面用URLDownloadToFile从服务器上下载了一个zip的资源包, 下载完成后,需要解压该文件,替换文件夹下的其他文件.不知为何无法正常解压,而解压算法单独测试时,可以正常解压! 使用的这个解压算法:http://blog.csdn.net/wangqinghao/article/details/7060003 每次执行到这里时候,就会返回,不进行解压: hz =

如何解压 tar 文件到不同的目录中

如何解压 tar 文件到不同的目录中 我想要解压一个tar文件到一个叫/tmp/data的指定目录.我该如何在Linux或者类Unix的系统中使用tar命令解压一个tar文件到不同的目录中? 你不必使用cd命令切换到其他的目录并解压.可以使用下面的语法解压一个文件: 语法 典型Unix tar语法: tar -xf file.name.tar -C /path/to/directory GNU/tar 语法: tar xf file.tar -C /path/to/directory   tar

求大牛们帮忙,介绍一下java解析多层xml

问题描述 求大牛们帮忙,介绍一下java解析多层xml 假设xml文档如下 那么该如何解析输出如下 求大牛们能给出java dom解析的代码,特别是判断文本内容的部分,也就是循环到哪里就能输出文本内容 解决方案 <?xml version="1.0" encoding="UTF-8"?> yy00000000000372 zz00000000000152 解决方案二: <?xml version="1.0" encoding=&

求高手解析json java的

问题描述 求高手解析json java的 {"data":[{"result":{"result":[{"data":["2","9","2","6","6"],"key":"ball"}]},"phasetype":"202","phas

天气预报执行计划及完成程度+简单而又不简单获取当前时间和解析农历时间的纯JAVA代码

1. insert into weather_android_info (select * from weather_info); insert into weather_android_now_info (select * from weather_now_info); update weather_android_info set weather_temp1="0℃" where weather_temp1='null'; update weather_android_info s

javamail 邮...-请问如何用JAVA解析本地邮件

问题描述 请问如何用JAVA解析本地邮件 领导要求用JAVA解析本地邮件 我查到的都是连接邮箱然后再解析,但是领导说直接从本地连接,然后解析.新人,不会啊 求各位帮助,谢谢 解决方案 是解析之前接收到本地的邮件吧. 这里有个博客.你可以看看http://blog.csdn.net/dankes/article/details/452101 解决方案二: java邮件

java解析word简历 取出简历中的姓名电话邮箱存入数据库

问题描述 java解析word简历取出简历中的姓名电话邮箱存入数据库求高手指导,最好有详细代码.谢谢 解决方案 解决方案二:POI编程.查资料吧,然后用正则表达式把email取出来,姓名的话,看你怎么写吧.要知道简历如果没有固定格式,这个任务就痛苦了解决方案三:应该有规则的吧解决方案四:POI解析word,查找相应字段存入数据库

Php利用java解析xml

xml 作者: 雨伞首先如果你对JAVA不感兴趣或者说你的主机不支持JAVA或者你也不打算学习的话请不要浪费时间在这里. 请先安装JAVA的执行环境与PHP结合,具体参考http://www.phpx.com/happy/thr78795.html 或者下载http://www.javax.org/download/php_java.rar里面我写有个readme.txt说明文档,这个压缩包是个简单的例子. 要下载我的JAVA源码请到http://www.javax.org/download/J