Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > readline

module function Kernel.#readline

readline(rs = $/) -> String[permalink][rdoc]

ARGFから一行読み込んで、それを返します。行の区切りは引数 rs で指定した文字列になります。

rs に nil を指定すると行区切りなしとみなしてファイルの内容をすべて読み込みます。ARGVに複数のファイル名が存在する場合は1度に1ファイルずつ読み込みます。空文字列 "" を指定すると連続する改行を行の区切りとみなします (パラグラフモード)。

読み込んだ文字列は組み込み変数 $_ にもセットされます。

[PARAM] rs:
行の区切りとなる文字列です。
[EXCEPTION] Errno::EXXX:
読み込みに失敗した場合に発生します。
[EXCEPTION] EOFError:
readline でファイル末端(EOF)を検出すると発生します。


# ---main.rb---
ARGV << 'b.txt' << 'c.txt'
p readline #=> "hello\n"
p readline(nil) #=> "it\ncommon\n"
p readline("") #=> "ARGF\n\n"
p readline('、') #=> "スクリプトに指定した引数 (Object::ARGV を参照) をファイル名と\nみなして、"
p readline #=> "それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 \n"
p readline # end of file reached (EOFError)
# --- b.txt ---
hello
it
common
# --- c.txt ---
ARGF
# スクリプトに指定した引数 (Object::ARGV を参照) をファイル名と
# みなして、それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。

[SEE_ALSO] $/,ARGF,Kernel.#readlines,Kernel.#gets