我有GZIP存档,里面有两个用tar实用程序打包的文件。我需要将它们都提取到内存中。所以我需要得到两个byte
数组。但是GZIPInputStream
用法的所有示例都只是读取字节并将它们保存到输出流中,因此我不知道如何获得两个byte[]
数组。
答案 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。
bsdtar
和bscpio
命令行实用程序在功能和性能方面与其他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压缩的档案。
独特的格式转换功能。