当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang deflate(Z, Data, Flush)用法及代码示例


deflate(Z, Data, Flush) -> Compressed
类型:
Z = zstream()
Data = iodata()
Flush = zflush()
Compressed = iolist()

压缩尽可能多的数据,并在输入缓冲区变空时停止。它可能会引入一些输出延迟(读取输入而不产生任何输出),除非强制刷新。

如果 Flush 设置为 sync ,则所有挂起的输出都将刷新到输出缓冲区,并且输出在字节边界上对齐,以便解压缩器可以获得迄今为止可用的所有输入数据。刷新会降低某些压缩算法的压缩性能;因此,仅在必要时使用它。

如果 Flush 设置为 full ,则与 sync 一样刷新所有输出,并且重置压缩状态,以便如果先前的压缩数据已损坏或需要随机访问,则可以从此时重新开始解压缩。过于频繁地使用 full 会严重降低压缩效果。

如果Flush被设定为finish,处理挂起的输入,刷新挂起的输出,并且deflate/3返回。之后流上唯一可能的操作是deflateReset/1或者deflateEnd/1.

Flush可以设置为finish之后立马deflateInit如果所有压缩都是一步完成的。

例子:

zlib:deflateInit(Z),
B1 = zlib:deflate(Z,Data),
B2 = zlib:deflate(Z,<< >>,finish),
zlib:deflateEnd(Z),
list_to_binary([B1,B2])

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 deflate(Z, Data, Flush) -> Compressed。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。