#概要
Rubyではデータ読み込みの際に使用するメソッドによって、ファイル末尾に到達した時の振る舞い
や空ファイルを開いた時の振る舞い
が異なります。
各メソッドの動きとEOF・空ファイルに対する振る舞いの違いについてまとめました。
#IOクラスのファイルを読み込むメソッド・振る舞い一覧
メソッド名 | 処理 | EOF・空ファイルに対する振る舞い |
---|---|---|
read | IOから内容を読み込む。引数で読み込みの長さの指定が可能。 | 空ファイルの場合は「""」が返る。引数で読み込みの長さが指定されている場合はnilが返る。 |
readlines | ファイルを全て読み込んで、行ごとに要素に分けた配列にして返す。 | 空ファイルの場合は空配列([])が返る。 |
each/foreach | 指定されたファイルを開き、各行ごとにブロックに渡す。 | 与えられたブロックが実行されない。 |
each_byte | 与えられたブロックに1バイトずつ整数として渡す。 | EOFであれば何もしない。 |
gets | IOオブジェクトから1行だけ読み込む。 | nilを返す。 |
readline | IOオブジェクトから1行だけ読み込む。 | EOFErrorエラーが発生する。 |
getc | IOオブジェクトから1文字読み込む。 | nilを返す。 |
readchar | IOオブジェクトから1文字読み込む。 | EOFErrorエラーが発生する。 |
getbyte | IOオブジェクトから1バイト読み込んで整数として返す。 | nilを返す。 |
readbyte | IOオブジェクトから1バイト読み込んで整数として返す。 | EOFErrorエラーが発生する。 |