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


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


inflateChunk(Z, Data) -> Decompressed | {more, Decompressed}
OTP 18.0
类型:
Z = zstream()
Data = iodata()
Decompressed = iolist()
警告

此函数已弃用,并将在未来版本中删除。使用safeInflate/2 反而。

就像inflate/2,但解压缩的数据不会超过通过配置的缓冲区所能容纳的数据量setBufSize/2 。在以高压缩比解压缩流时非常有用,这样少量的压缩输入就可以扩展至 1000 倍。

该函数返回{more, Decompressed},当有更多可用输出时,并且inflateChunk/1是用来阅读它的。

此函数可能会引入一些输出延迟(读取输入而不产生任何输出)。

如果需要预设字典来进一步解压,则会抛出异常。看 inflateSetDictionary/2详情。

例子:

walk(Compressed, Handler) ->
    Z = zlib:open(),
    zlib:inflateInit(Z),
    % Limit single uncompressed chunk size to 512kb
    zlib:setBufSize(Z, 512 * 1024),
    loop(Z, Handler, zlib:inflateChunk(Z, Compressed)),
    zlib:inflateEnd(Z),
    zlib:close(Z).

loop(Z, Handler, {more, Uncompressed}) ->
    Handler(Uncompressed),
    loop(Z, Handler, zlib:inflateChunk(Z));
loop(Z, Handler, Uncompressed) ->
    Handler(Uncompressed).

相关用法


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