Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > zlibライブラリ > Zlib::GzipWriterクラス

class Zlib::GzipWriter

クラス・モジュールの継承リスト: Zlib::GzipWriter < Zlib::GzipFile < Object < Kernel < BasicObject

要約

gzip 形式の圧縮ファイルを書き出すラッパークラスです。 IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを持つオブジェクト) と関連付けて使用します。

require 'zlib'

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

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

なお、Ruby の finalizer の制約のため、GzipWriter オブジェクトは必ず Zlib::GzipWriter#close 等を用いてクローズしてください。そうしなければフッターを書き出すことができず、壊れた gzip ファイルを生成してしまう可能性があります。

特異メソッド

定義 説明
new(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriter

io と関連付けられた GzipWriter オブジェクトを作成します。 level, strategy は Zlib::Deflate.new と同じです。 GzipWriter オブジェクトは io に gzip 形式のデータを逐次ライトします。io には少なくとも、IO#write と同じ動作をする write メソッドが定義されている必要があります。

open(filename, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriter
open(filename, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) {|gz| ... } -> object

filename で指定されるファイルを gzip 圧縮データの書き出し用にオープンします。GzipWriter オブジェクトを返します。その他詳細は Zlib::GzipWriter.newZlib::GzipWriter.wrap と同じです。

wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) -> Zlib::GzipWriter
wrap(io, level = Zlib::DEFAULT_COMPRESSION, strategy = Zlib::DEFAULT_STRATEGY) {|gz| ... } -> object

io と関連付けられた GzipWriter オブジェクトを作成します。ブロックが与えられた場合、それを引数としてブロックを実行します。ブロックの実行が終了すると、GzipWriter オブジェクトは自動的にクローズされます。関連付けられている IO オブジェクトまでクローズしたくない時は、ブロック中で Zlib::GzipFile#finish メソッドを呼び出して下さい。

インスタンスメソッド

定義 説明
self << str -> self

str を出力します。str が文字列でない場合は to_s を用いて文字列に変換します。

close -> File
finish -> File

フッターを書き出し、GzipWriter オブジェクトをクローズします。close と finish の違いは Zlib::GzipFile#close, Zlib::GzipFile#finish を参照して下さい。

comment=(string)

gzip ファイルのヘッダーに記録するコメントを指定します。

flush(flush = Zlib::SYNC_FLUSH) -> self

まだ書き出されていないデータをフラッシュします。

mtime=(time)

gzip ファイルのヘッダーに記録する最終更新時間を指定します。

orig_name=(filename)

gzip ファイルのヘッダーに記録する元ファイル名を指定します。

pos -> Integer
tell -> Integer

現在までに圧縮したデータの長さの合計を返します。ファイルポインタの位置ではないことに注意して下さい。

print(*str) -> nil

引数を自身に順に出力します。引数を省略した場合は、$_ を出力します。

printf(format, *args) -> nil

C 言語の printf と同じように、format に従い引数を文字列に変換して、自身に出力します。

putc(ch) -> object

文字 ch を自身に出力します。

puts(*str) -> nil

各引数を自身に出力し、それぞれの後に改行を出力します。

write(*str) -> Integer

自身に str を出力します。str が文字列でなければ to_s による文字列化を試みます。

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined !~ <=> == === =~ _dump class clone define_singleton_method display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap then to_a to_ary to_hash to_int to_proc to_regexp to_s to_str trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE closed? comment crc level mtime orig_name os_code path sync