要約
gzip 形式の圧縮ファイルを読み込むラッパークラスです。 IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを持つオブジェクト) と関連付けて使用します。
require 'zlib'
=begin
# hoge.gz がない場合は下記で作成できる。
Zlib::GzipWriter.open('hoge.gz') { |gz|
gz.puts 'hoge'
}
=end
Zlib::GzipReader.open('hoge.gz') {|gz|
print gz.read
}
f = File.open('hoge.gz')
gz = Zlib::GzipReader.new(f)
print gz.read
gz.close
目次
- 特異メソッド
- インスタンスメソッド
継承しているメソッド
- Enumerableから継承しているメソッド
-
- all?
- any?
- chain
- chunk
- chunk_while
- collect
- collect_concat
- compact
- count
- cycle
- detect
- drop
- drop_while
- each_cons
- each_entry
- each_slice
- each_with_index
- each_with_object
- entries
- filter
- filter_map
- find
- find_all
- find_index
- first
- flat_map
- grep
- grep_v
- group_by
- include?
- inject
- lazy
- map
- max
- max_by
- member?
- min
- min_by
- minmax
- minmax_by
- none?
- one?
- partition
- reduce
- reject
- reverse_each
- select
- slice_after
- slice_before
- slice_when
- sort
- sort_by
- sum
- take
- take_while
- tally
- to_a
- to_h
- uniq
- zip
- Zlib::GzipFileから継承しているメソッド
特異メソッド
new(io) -> Zlib::GzipReader[permalink][rdoc][edit]-
io と関連付けられた GzipReader オブジェクトを作成します。
GzipReader オブジェクトは io からデータを逐次リードして解析/展開を行います。io には少なくとも、IO#read と同じ動作をする read メソッドが定義されている必要があります。
- [PARAM]
io: - IO オブジェクト、もしくは少なくとも IO#read と同じ動作をする read メソッドが定義されているオブジェクト
- [EXCEPTION]
Zlib::GzipFile::Error: - ヘッダーの解析に失敗した場合発生します。
require 'zlib' File.open('hoge.txt', "w") { |fp| fp.puts 'hoge' } f = File.open('hoge.txt') begin Zlib::GzipReader.new(f) rescue Zlib::GzipFile::Error => err puts "error", err # => error # => not in gzip format end - [PARAM]
open(filename) -> Zlib::GzipReader[permalink][rdoc][edit]open(filename) {|gz| ... } -> object-
filename で指定されるファイルを gzip ファイルとしてオープンします。GzipReader オブジェクトを返します。その他詳細は Zlib::GzipReader.new や Zlib::GzipReader.wrap と同じです。
- [PARAM]
filename: - gzip ファイル名を文字列で指定します。
require 'zlib' =begin # hoge.gz がない場合はこれで作成する。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } =end Zlib::GzipReader.open('hoge.gz'){|gz| print gz.read } - [PARAM]
wrap(io) -> Zlib::GzipReader[permalink][rdoc][edit]wrap(io) {|gz| ... } -> object-
io と関連付けられた GzipReader オブジェクトを作成します。
ブロックが与えられた場合は、それを引数としてブロックを実行します。ブロックの実行が終了すると、GzipReader オブジェクトは自動的にクローズされます。関連付けられている IO オブジェクトまでクローズしたくない時は、ブロック中で Zlib::GzipFile#finish メソッドを呼び出して下さい。
- [PARAM]
io: - IO オブジェクトを指定します。
require 'zlib' =begin # hoge.gz がない場合はこれで作成する。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } =end f = File.open('hoge.gz') Zlib::GzipReader.wrap(f){|gz| print gz.read } p f.closed? # => true f = File.open('hoge.gz') Zlib::GzipReader.wrap(f){|gz| print gz.read gz.finish } p f.closed? # => false - [PARAM]
zcat(io, options = {}) -> StringRuby 3.0 から[permalink][rdoc][edit]zcat(io, options = {}) {|string| ... } -> nil-
io に含まれているすべての gzip ストリームを展開します。
io の末尾まで、複数の gzip ストリームが連続して格納されている場合も扱います。gzip ストリームの後ろに gzip 形式以外のデータがあってはいけません。
ブロックが与えられた場合は、展開したストリームごとにブロックを呼び出し、
nilを返します。ブロックが与えられなかった場合は、すべてのストリームを展開した結果を連結した文字列を返します。- [PARAM]
io: - 読み込み元の IO オブジェクトを指定します。
- [PARAM]
options: - Zlib::GzipReader.new に渡すオプションをハッシュで指定します。
require 'zlib' File.open('multi.gz', 'wb') { |f| f.write(Zlib.gzip('hoge')) f.write(Zlib.gzip('fuga')) } File.open('multi.gz') { |f| p Zlib::GzipReader.zcat(f) # => "hogefuga" } File.open('multi.gz') { |f| Zlib::GzipReader.zcat(f) { |chunk| p chunk } } # => "hoge" # => "fuga"[SEE_ALSO] Zlib::GzipReader.new
- [PARAM]
インスタンスメソッド
each(rs = $/) {|line| ... } -> self[permalink][rdoc][edit]each_line(rs = $/) {|line| ... } -> selfeach(rs = $/) -> Enumeratoreach_line(rs = $/) -> Enumerator-
IO クラスの同名メソッドIO#each, IO#each_lineと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
rs: - 行の区切りを文字列で指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| gz.each { |line| puts line } }[SEE_ALSO] IO#each, IO#each_line
each_byte {|byte| ... } -> nil[permalink][rdoc][edit]each_byte -> Enumerator-
IO クラスの同名メソッドIO#each_byteと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } =end Zlib::GzipReader.open('hoge.gz') { |gz| gz.each_byte { |b| printf "%d -> %c\n", b, b } } # => 104 -> h # => 111 -> o # => 103 -> g # => 101 -> e # => 10 ->[SEE_ALSO] IO#each_byte
each_char {|c| ... } -> nilRuby 1.9.1 から[permalink][rdoc][edit]each_char -> Enumerator-
IO クラスの同名メソッドIO#each_charと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hoge' } Zlib::GzipReader.open('hoge.gz') { |gz| gz.each_char { |c| print c, ' ' } } # => h o g e[SEE_ALSO] IO#each_char
eof -> bool[permalink][rdoc][edit]eof? -> bool-
圧縮データの終端に達した場合真を返します。フッターが読み込まれていなくても真を返すことに注意して下さい。
require 'zlib' =begin # hoge.gz がない場合はこれで作成する。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' gz.puts 'foga' } =end Zlib::GzipReader.open('hoge.gz'){|gz| gz.each_line{|line| puts line } p gz.eof? # => true } external_encoding -> EncodingRuby 2.3.0 から[permalink][rdoc][edit]-
selfが読み込むデータの外部エンコーディングを返します。Zlib::GzipReader.new や Zlib::GzipReader.open の
:external_encodingオプションや:encodingオプションで指定した値を返します。省略した場合はデフォルトの外部エンコーディング(Encoding.default_external)を返します。require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hoge' } Zlib::GzipReader.open('hoge.gz', external_encoding: 'EUC-JP') { |gz| p gz.external_encoding # => #<Encoding:EUC-JP> }[SEE_ALSO] IO#external_encoding
getbyte -> Integer | nilRuby 1.9.1 から[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#getbyteと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hoge' } Zlib::GzipReader.open('hoge.gz') { |gz| while b = gz.getbyte puts b end } # => 104 # => 111 # => 103 # => 101[SEE_ALSO] IO#getbyte
getc -> Integer | nil[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#getcと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } =end Zlib::GzipReader.open('hoge.gz') { |gz| while c = gz.getc puts c end } # => 104 # => 111 # => 103 # => 101 # => 10[SEE_ALSO] IO#getc
gets(rs = $/) -> String | nil[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#getsと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
rs: - 行の区切りを文字列で指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| while l = gz.gets puts l end } # => hoge # => fuga lineno -> Integer[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#linenoと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'h' gz.puts 'o' gz.puts 'g' gz.puts 'e' } =end Zlib::GzipReader.open('hoge.gz') { |gz| while l = gz.gets l.chomp! printf "%s %d\n", l, gz.lineno end } # => h 1 # => o 2 # => g 3 # => e 4[SEE_ALSO] IO#lineno
lineno=(num)[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#lineno=と同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
num: - 新たな行番号を整数で指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'h' gz.puts 'o' gz.puts 'g' gz.puts 'e' } =end Zlib::GzipReader.open('hoge.gz') { |gz| while l = gz.gets l.chomp! gz.lineno = 1000 if l == "o" printf "%s %d\n", l, gz.lineno end } # => h 1 # => o 1001 # => g 1002 # => e 1003[SEE_ALSO] IO#lineno=
pos -> Integer[permalink][rdoc][edit]tell -> Integer-
現在までに展開したデータの長さの合計を返します。ファイルポインタの位置ではないことに注意して下さい。
require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } Zlib::GzipReader.open('hoge.gz'){|gz| while c = gz.getc printf "%c, %d\n", c, gz.pos end } # 実行例 # => h, 1 # => o, 2 # => g, 3 # => e, 4 # => # => , 5 read(length = nil) -> String | nil[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#readと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
length: - 読み込む文字列の文字数を整数で指定します。省略した場合は、全てのデータを読み込みます。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge_fuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| p gz.read(4) # => "hoge" p gz.read # => "_fuga\n" p gz.read(1) # => nil }[SEE_ALSO] IO#read
readbyte -> IntegerRuby 1.9.1 から[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#readbyteと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
EOFError: - EOF に到達したとき発生します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hoge' } Zlib::GzipReader.open('hoge.gz') { |gz| begin puts gz.readbyte rescue EOFError => err puts err break end while true } # => 104 # => 111 # => 103 # => 101 # => end of file reached[SEE_ALSO] IO#readbyte
readchar -> Integer[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#readcharと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [EXCEPTION]
EOFError: - EOF に到達したとき発生します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' } =end Zlib::GzipReader.open('hoge.gz') { |gz| begin puts gz.readchar rescue EOFError => err puts err break end while true } # => 104 # => 111 # => 103 # => 101 # => 10 # => end of file reached readline(rs = $/) -> String[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#readlineと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
rs: - 行の区切りを文字列で指定します。
- [EXCEPTION]
EOFError: - EOF に到達したとき発生します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| begin puts gz.readline rescue EOFError => err puts err break end while true } # => hoge # => fuga # => end of file reached[SEE_ALSO] IO#readline
readlines(rs = $/) -> Array[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#readlinesと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
rs: - 行の区切りを文字列で指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合は下記で作成できる。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| p gz.readlines # => ["hoge\n", "fuga\n"] }[SEE_ALSO] IO#readlines
readpartial(maxlen, outbuf = nil) -> StringRuby 1.9.3 から[permalink][rdoc][edit]-
IO クラスの同名メソッド IO#readpartial と同じです。
- [PARAM]
maxlen: - 読み込む長さの上限を整数で指定します。
- [PARAM]
outbuf: - 文字列で指定します。読み込んだデータを outbuf に破壊的に格納し、返り値は outbuf となります。outbuf は一旦 maxlen 長に拡張(あるいは縮小)されたあと、実際に読み込んだデータのサイズになります。
- [EXCEPTION]
ArgumentError: - maxlen に負の値が入力された場合発生します。
[SEE_ALSO] IO#readpartial
- [PARAM]
rewind -> 0[permalink][rdoc][edit]-
ファイルポインタを Zlib::GzipReader.new を呼び出した直後の時点に戻します。関連付けられている IO オブジェクトに seek メソッドが定義されている必要があります。
require 'zlib' =begin # hoge.gz がない場合はこれで作成する。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.puts 'hoge' gz.puts 'fuga' } =end gz = Zlib::GzipReader.open('hoge.gz') puts gz.gets # => hoge puts gz.gets # => fuga p gz.rewind # => 0 puts gz.gets # => hoge gz.close ungetbyte(char) -> nilRuby 1.9.1 から[permalink][rdoc][edit]-
IO クラスの同名メソッドIO#ungetbyteと同じです。
但し、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
char: - 読み戻したい 1 バイトを、バイト値(整数)または 1 文字の文字列で指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hoge' } Zlib::GzipReader.open('hoge.gz') { |gz| b1 = gz.getbyte b2 = gz.getbyte printf "%d -> %d\n", b1, b2 gz.ungetbyte(b2) p gz.getbyte } # => 104 -> 111 # => 111[SEE_ALSO] IO#ungetbyte
ungetc(char) -> nil[permalink][rdoc][edit]-
IO クラスの同名メソッド IO#ungetc と同じです。
IO クラスの同名メソッドと同じですが、gzip ファイル中にエラーがあった場合 Zlib::Error 例外や Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。 gzip ファイルのフッターには圧縮前データのチェックサムが記録されています。GzipReader オブジェクトは、次の時に展開したデータとフッターの照合を行い、エラーがあった場合は Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, Zlib::GzipFile::LengthError 例外を発生させます。
- EOF (圧縮データの最後) を越えて読み込み要求を受けた時。 すなわち Zlib::GzipReader#read, Zlib::GzipReader#gets メソッド等が nil を返す時。
- EOF まで読み込んだ後、Zlib::GzipFile#close メソッドが 呼び出された時。
- EOF まで読み込んだ後、Zlib::GzipReader#unused メソッドが 呼び出された時。
- [PARAM]
char: - 読み戻したい1文字かそのコードポイントを指定します。
- [EXCEPTION]
Zlib::Error: - Zlib::Error を参照
- [EXCEPTION]
Zlib::GzipFile::Error: - Zlib::GzipFile::Errorを参照
- [EXCEPTION]
Zlib::GzipFile::NoFooter: - Zlib::GzipFile::NoFooterを参照
- [EXCEPTION]
Zlib::GzipFile::CRCError: - Zlib::GzipFile::CRCErrorを参照
- [EXCEPTION]
Zlib::GzipFile::LengthError: - Zlib::GzipFile::LengthErrorを参照
require 'zlib' =begin # hoge.gz がない場合はこれで作成する。 Zlib::GzipWriter.open('hoge.gz') { |gz| gz.print 'hogefuga' } =end Zlib::GzipReader.open('hoge.gz') { |gz| begin c1 = gz.getc c2 = gz.getc break if c2.nil? printf "%c -> %c\n", c1, c2 gz.ungetc(c2) end while true } # => h -> o # => o -> g # => g -> e # => e -> f # => f -> u # => u -> g # => g -> a[SEE_ALSO] IO#ungetc
unused -> String | nil[permalink][rdoc][edit]-
gzip フォーマットの解析のために読み込んだ余剰のデータを返します。 gzip ファイルが最後まで解析されていない場合は nil を返します。