> Linux新闻 >

Apache Commons Compress 1.9 发布

Apache Commons Compress 1.9 发布,此版本现已提供下载,在没有 GZIP 的情况下支持原始压缩流;修复了 7z 和 tar 包相关的 bug;改进了对 Java 库 XZ 的检测。

更新内容如下:

新特性
o Added support for DEFLATE streams without any gzip framing.
  Issue: COMPRESS-263.
  Thanks to Matthias Stevens.

Bugs 修复
o When reading 7z files unknown file properties and properties of type
  kDummy are now ignored.
  Issue: COMPRESS-287.
o Expanding 7z archives using LZMA compression could cause an
  EOFException.
  Issue: COMPRESS-286. 
o Long-Name and -link or PAX-header entries in TAR archives always had
  the current time as last modfication time, creating archives that
  are different at the byte level each time an archive was built.
  Issue: COMPRESS-289.
  Thanks to Bob Robertson.

改进
o Checking for XZ for Java may be expensive.  The result will now be
  cached outside of an OSGi environment.  You can use the new
  XZUtils#setCacheXZAvailability to overrride this default behavior.
  Issue: COMPRESS-285.

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

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

?
1
2
3
4
ArArchiveEntry entry = new ArArchiveEntry(name, size);
arOutput.putArchiveEntry(entry);
arOutput.write(contentOfEntry);
arOutput.closeArchiveEntry();

Zip文件的解压缩:

?
1
2
3
4
5
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);
}

(责任编辑:IT)