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 的限制,您必须通过 Zlib::GzipWriter#close 等显式关闭 GzipWriter 对象。否则,GzipWriter 将无法写入 gzip 页脚,并且会生成损坏的 gzip 文件。