Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > ARGFオブジェクト
クラスの継承リスト: ARGF
extend: Enumerable
スクリプトに指定した引数 (Kernel::ARGV を参照) をファイル名とみなして、 それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 ARGV が空なら標準入力を対象とします。 ARGV を変更すればこのオブジェクトの動作に影響します。
while line = ARGF.gets .... end
は、
while argv = ARGV.shift File.open(argv) {|file| while line = file.gets .... end } end
のように動作します。
ARGF を処理するごとに ARGV の要素は一つずつ取り除かれます。 最後まで ARGF を読み込んだ後、再度 ARGF から内容を読むと (ARGV が空なので)標準入力からの読み込みとなります。
ARGV.replace %w(/tmp/foo /tmp/bar) ARGF.each {|line| # 処理中の ARGV の内容を表示 p [ARGF.filename, ARGV] ARGF.skip } # => ["/tmp/foo", ["/tmp/bar"]] # ["/tmp/bar", []] # 最後まで読んだ後 (ARGV が空) の動作 p ARGF.gets # => nil p ARGF.filename # => "-"
Kernel.#gets など一部の組み込み関数は ARGF.gets などこのオブジェクトをレシーバとしたメソッドの省略形です。
定義 | 説明 | |
---|---|---|
binmode -> self
|
IO#binmodeを参照 |
|
bytes -> Enumerator
|
||
each_char {|c| ... } -> self
|
レシーバに含まれる文字を一文字つつブロックに渡して評価します。 |
|
close -> self
|
処理対象のファイルをクローズします。開くファイルが残っている場合は次のファイルをオープンします。 |
|
closed? -> bool
|
ARGFがcloseされていればtrueを返します。 |
|
each(rs = $/) {|line| ... } -> self
|
ARGFの現在位置から一行ずつ文字列として読み込みます。 |
|
each_byte {|char| ...} -> self
|
||
eof -> bool
|
現在開いているファイルがeofに達したらtrueを返します。そうでない場合はfalseを返します。 |
|
file -> IO
|
||
filename -> String
|
処理対象のファイル名を返します。 標準入力に対しては - を返します。 組み込み変数 $FILENAME と同じです。 |
|
fileno -> Integer
|
現在オープンしているファイルのファイル記述子を表す整数を返します。 |
|
getbyte -> Integer | nil
|
自身から 1 バイトを読み込み整数として返します。 既に EOF に達していれば nil を返します。 |
|
getc -> Integer | nil
|
ARGFから 1 文字読み込んで、その文字に対応する Fixnum を返します。EOF に到達した時には nil を返します。 |
|
gets -> String | nil
|
ARGFの現在位置から一行ずつ文字列として読み込みます。EOF に到達した時には nil を返します。 |
|
lineno -> Integer
|
全引数ファイルを一つのファイルとみなしたときの現在の行番号を返します。 個々の引数ファイル毎の行番号を得るには ARGF.file.lineno とします。 |
|
lineno=(number)
|
全引数ファイルを一つのファイルとみなしたときの現在の行番号を number に書き換えます。 |
|
lines(rs = $/) -> Enumerator
|
自身を 1 行ずつイテレートするような Enumerator オブジェクトを生成して返します。 |
|
pos -> Integer
|
ARGFが現在開いているファイルのファイルポインタの現在の位置を整数で返します。 |
|
pos=(n)
|
ARGFが開いているファイルのファイルポインタを指定位置に移動します。 |
|
read(length = nil, str = nil) -> String
|
ARGVに指定されたファイルを先頭のファイルからlengthバイト読み込み、 その文字列をstrに出力します。読み込んだ文字列を返します。 |
|
readbyte -> Integer
|
自身から 1 バイトを読み込み整数として返します。 既に EOF に達していれば EOFError が発生します。 |
|
readchar -> Integer
|
ARGFから 1 文字読み込んで、その文字に対応する Fixnum を返します。EOF に到達した時には EOFErrorを発生します。 |
|
readline -> String
|
ARGFの現在位置から一行ずつ文字列として読み込みます。EOF に到達した時にはEOFErrorを発生します。 |
|
readlines(rs = $/) -> [String]
|
ARGFの各行を配列に読み込んで返します。rsがnilの場合は要素に各ファイルをすべて読み込んだ配列を返します。 |
|
readpartial(length, str = nil)
|
||
rewind -> 0
|
ARGFが現在開いているファイルのファイルポインタを先頭に戻します。 |
|
seek(offset, whence = IO::SEEK_SET) -> 0
|
ARGFが現在開いているファイルのファイルポインタを whence の位置から offset だけ移動させます。 offset 位置への移動が成功すれば 0 を返します。 |
|
skip -> self
|
処理対象のファイルをクローズします。 次回の読み込みは次の引数が処理対象になります。 self を返します。 |
|
to_io -> IO
|
||
to_s -> String
|
常に文字列 "ARGF" を返します。 |