class Zlib::GzipWriter

Zlib::GzipWriter 是一个用于写入 gzip 文件的类。 GzipWriter 应与 IO 实例或类似 IO 的对象一起使用。

以下两个示例生成相同的结果。

Zlib::GzipWriter.open('hoge.gz') do |gz|
  gz.write 'jugemu jugemu gokou no surikire...'
end

File.open('hoge.gz', 'w') do |f|
  gz = Zlib::GzipWriter.new(f)
  gz.write 'jugemu jugemu gokou no surikire...'
  gz.close
end

要使其行为与 gzip(1) 相同,请运行以下命令

orig = 'hoge.txt'
Zlib::GzipWriter.open('hoge.gz') do |gz|
  gz.mtime = File.mtime(orig)
  gz.orig_name = orig
  gz.write IO.binread(orig)
end

注意:由于 Ruby finalizer 的限制,您必须显式关闭 GzipWriter 对象,通过 Zlib::GzipWriter#close 等。否则,GzipWriter 将无法写入 gzip 页脚,并会生成损坏的 gzip 文件。