gzipで圧縮・展開を行う
gzipはUNIXで使われる標準的な圧縮形式だ。
Rubyではzlibライブラリを使って、gzip形式の圧縮と展開が行える。
gzip形式のファイルを書き出すには、Zlib::GzipWriter
を使う。
このクラスは出力をgzip圧縮しながら書き出すIOのラッパであり、IOと同様に扱うことができる。
require "zlib" Zlib::GzipWriter.open("hoge.gz"){|gz| gz.puts "hoge" gz.puts "piyo" gz.puts "fuga" }
gzip形式のファイルを読み出すには、Zlib::GzipReader
を使う。
このクラスも出力をgzip展開しながら読み出すIOのラッパであり、IOと同様に扱うことができる。
require "zlib" Zlib::GzipReader.open("hoge.gz"){|gz| while s = gz.gets puts s end }
なお、ファイルの書き出し読み出しではなくメモリ上で圧縮と展開を行いたい場合は、Zlib::Deflate
とZlib::Inflate
を使用する。