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


Ruby Zlib模块用法及代码示例


本文简要介绍ruby语言中 Zlib模块 的用法。

该模块提供对zlib library的访问。 Zlib 被设计为一个可移植、免费、通用、不受法律限制(即不受任何专利保护)的无损data-compression 库,几乎可在任何计算机硬件和操作系统上使用。

zlib 压缩库提供内存压缩和解压缩函数,包括未压缩数据的完整性检查。

zlib 压缩数据格式在 RFC 1950 中进行了说明,它是对 RFC 1951 中说明的 deflate 流的包装。

该库还支持读取和写入 gzip (.gz) 格式的文件,其接口类似于 IO 。 gzip 格式在 RFC 1952 中进行了说明,它也是 deflate 流的包装器。

zlib 格式被设计为紧凑且快速,可用于内存和通信通道。 gzip 格式专为文件系统上的single-file 压缩而设计,具有比 zlib 更大的标头来维护目录信息,并且使用与 zlib 不同的、更慢的检查方法。

有关 zlib 的更多信息,请参见系统的 zlib.h

示例使用

使用包装器压缩带有默认参数的字符串非常简单:

require "zlib"

data_to_compress = File.read("don_quixote.txt")

puts "Input size: #{data_to_compress.size}"
#=> Input size: 2347740

data_compressed = Zlib::Deflate.deflate(data_to_compress)

puts "Compressed size: #{data_compressed.size}"
#=> Compressed size: 887238

uncompressed_data = Zlib::Inflate.inflate(data_compressed)

puts "Uncompressed data is: #{uncompressed_data}"
#=> Uncompressed data is: The Project Gutenberg EBook of Don Quixote...

Class

(如果你有GZIP_SUPPORT)

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Zlib模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。