是否有可能从java.util.zip.Deflater中获取原始deflate?

时间:2015-04-16 23:17:17

标签: java zlib

zlib docs指定可以将负windowBits参数传递给deflateInit2()函数:

  对于原始 deflate

windowBits也可以是-8 ..- 15。在这种情况下,-windowBits   确定窗口大小。然后,deflate()会生成原始deflate数据   没有 zlib 标题或预告片,并且不会计算adler32检查值。

我在我的C代码中使用了这个,并且在Java中能够通过将true参数的nowrap传递给Inflater构造函数来扩充这样压缩的字节。

但是,将true参数的nowrap传递给Deflater不会产生原始收缩。它返回的字节比我的C实现多20个字节,这肯定听起来像标题和校验和。 (为false传递nowrap会产生更长的字节数组。)

我已经扫过了 Deflater docs但是没有找到指定窗口位的方法或者我想要一个原始的deflate。这个图书馆可以吗?或者我是否需要使用其他一些实现来获取Java中的原始deflate?

1 个答案:

答案 0 :(得分:3)

Deflater生成zlib包装数据(RFC 1950)。 Deflater(level, true)生成原始deflate数据(RFC 1951)。