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?
答案 0 :(得分:3)
Deflater
生成zlib包装数据(RFC 1950)。 Deflater(level, true)
生成原始deflate数据(RFC 1951)。