Apache Commons Compress 1.19 发布

来自:互联网
时间:2019-08-29
阅读:

Apache Commons Compress 1.19 发布了,这主要是一个 bug 修复版本。

新特性

  • 现在可以在使用 ZipFile 时跳过对本地文件头的解析,这可能会加速读取存档,但代价是可能会丢失重要信息
  • TarArchiveInputStream 有一个新的构造函数 arg lenient,可用于接受某些遭到破坏的存档
  • ArjArchiveEntry 和 SevenZArchiveEntry 现在实现 hashCode 和 equals
  • 添加了一个 MultiReadOnlySeekableByteChannel 类,可用于连接多卷 7z 存档的各个部分,以便 SevenZFile 可以读取它们

Bug 修复

  • ZipArchiveInputStream 可能会忘记在某些情况下压缩级别已更改
  • 修复了 ParallelScatterZipCreator#writeTo 中另一个潜在的资源泄漏问题
  • 对于某些格式错误的 LZ4 或 Snappy 输入,抛出 IOException 而不是 RuntimeExceptions
  • 如果数据描述符未使用 InfoZIP 发明的签名,ZipArchiveInputStream 无法使用数据描述符读取存储的条目

更多详情可查看发布公告

下载地址:https://commons.apache.org/proper/commons-compress/download_compress.cgi

Commons Compress 用以实现将文件压缩或解压成 tar、zip、bzip2 等格式。

下面代码将文件压缩成 zip 格式:

ArArchiveEntry entry = new ArArchiveEntry(name, size);
arOutput.putArchiveEntry(entry);
arOutput.write(contentOfEntry);
arOutput.closeArchiveEntry();

Zip 文件的解压缩:

ArArchiveEntry entry = (ArArchiveEntry) arInput.getNextEntry();
byte[] content = new byte[entry.getSize()];
LOOP UNTIL entry.getSize() HAS BEEN READ {
    arInput.read(content, offset, content.length - offset);
}
返回顶部
顶部