将tar.gz文件中的两个文件解压缩到内存中

时间:2014-02-10 10:16:12

标签: java android gzip

我有GZIP存档,里面有两个用tar实用程序打包的文件。我需要将它们都提取到内存中。所以我需要得到两个byte数组。但是GZIPInputStream用法的所有示例都只是读取字节并将它们保存到输出流中,因此我不知道如何获得两个byte[]数组。

1 个答案:

答案 0 :(得分:0)

libarchive应该做你需要的。以下是他们主页的摘录,描述了它的内容:

  

libarchive

     


   多格式存档和压缩库   
  
  源代码分发包括libarchive库,bsdtar和bsdcpio命令行程序,完整的测试套件和文档:   
  
  稳定发布:libarchive-3.1.2.tar.gz libarchive-3.1.2.zip(自2013年1月13日起)   
  旧版本:libarchive-2.8.5.zip(自2011年9月3日起)   
  
  libarchive库的特点是:

     
      
  • 支持各种存档和压缩格式。

  •   
  • 强大的自动格式检测,包括存档/压缩组合,例如tar.gz。

  •   
  • 零拷贝内部架构以实现高性能。

  •   
  • 流式架构消除了对存档大小的所有限制,对条目大小的限制取决于特定格式。

  •   
  • 仔细考虑代码,以便在程序静态链接时最大限度地减少膨胀。

  •   
  • 增加测试套件以验证新端口的正确性。

  •   
  • 适用于大多数类似POSIX的系统(包括FreeBSD,Linux,Solaris等)

  •   
  • 支持Windows,包括Cygwin,MinGW和Visual Studio。   

  •   
     

bsdtarbscpio命令行实用程序在功能和性能方面与其他tar和cpio实现竞争:   

     
      
  • 读取各种格式,包括tar,pax,cpio,zip,xar,lha,ar,cab,mtree,rar和ISO映像。

  •   
  • 写入tar,pax,cpio,zip,xar,ar,ISO,mtree和shar档案。

  •   
  • 自动处理使用gzip,bzip2,lzip,xz,lzma或compress压缩的档案。

  •   
  • 独特的格式转换功能。

  •