在Java 7中,Deflater添加了对某些压缩参数(模式:FULL_FLUSH,SYNC_FLUSH)的支持.我想它们对应于标准API中类似Zlib的Zlib constants(尽管此版本具有更多模式).
我的疑问是那些模式与DEFLATE流的“块”如何相关(这些块是独立压缩的,除了块内的指针可能指向前一个块的原始子串).
这些模式中的一个(或两个)是否都暗示着刷新终止了(非最终的)DEFLATE块?呼叫者可以预测和/或建议这些块边界吗?
具体来说,我想告诉Deflater对象以下内容:“我将在预定长度(M)的段中为N个原始字节提供数据,并且因为我知道这些段很长并且在统计上有所不同,并且独立压缩它们几乎没有什么松懈和收获,我建议您将它们压缩在单独的DEFLATE块中.”我可以这样做吗?
解决方法:
是的,两次刷新都会在提供输入数据后终止当前块.
FULL_FLUSH进一步防止了以下块在其前面的块中使用匹配的字符串.
标签:deflate,zlib,java
来源: https://codeday.me/bug/20191029/1960430.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。