zlib文档指定可以向deflateInit2()
函数传递负的windowBits
参数:
windowBits
也可以是-8..-15用于原始的deflate。在这种情况下,-windowBits
确定窗口大小。deflate()
将生成没有zlib头或尾部的原始deflate
数据,并且不会计算adler32校验值。
我已经在我的C代码中使用了这个,在Java中可以通过将nowrap
参数设置为true
来解压缩这些字节,然后传递给Inflater构造函数。
true
传递给Deflater的nowrap
参数不会产生原始压缩。它返回比我在C实现中得到的多20个字节,这确实听起来像是一个标题和校验和。(对于nowrap
传递false
将得到更长的字节数组。)我已经浏览了Deflater docs,但没有找到指定窗口位或要求原始压缩的方法。这个库是否支持?或者我需要使用其他实现来在Java中获得原始压缩?
true
дј йҖ’з»ҷnowrap
еҸӮж•°дјҡдә§з”ҹRFC-1950 ZLIBз»“жһңгҖӮдј йҖ’false
дјҡдә§з”ҹRFC-1952 Gzipз»“жһңгҖӮжҲ‘жғіиҰҒзҡ„жҳҜRFC-1951еҺҹе§ӢDEFLATEз»“жһңгҖӮ - theoryDeflaterOutputStream
和DeflaterInputStream
的可能性了吗?也许那会对你有所帮助。 - Jean-François SavardInflater
或Deflater
对象传递给它们的构造函数,在那里设置所有基于压缩的属性,而不是在流对象上设置。 - theoryjava.util.zip
的了解有限。这显然是我需要更加努力学习的东西。祝你好运。 - Jean-François Savard