次の項目は別ページに分割しました。
関連ページ:
ファイル入出力
ドキュメント:
class File | Ruby リファレンスマニュアル [公式]
ファイルを開く (open)
ファイルをオープンして、IO
クラスのインスタンスを返す。
ブロックが与えられた場合、指定されたファイルをオープンし、生成した IO
オブジェクトを引数としてブロックを実行する。 ブロックの終了時や例外によりブロックを脱出する際、ファイルはクローズされる。ブロックを評価した値を返す。
コード例
テキストファイルをオープンして、読み出した内容を標準出力に書き出す。
text = open("test.txt") do |file|
file.read
end
puts text
Code language: Ruby (ruby)
ドキュメント:
Kernel.#open | Ruby リファレンスマニュアル [公式]
File.new | Ruby リファレンスマニュアル [公式]
IO
ドキュメント:
class IO | Ruby リファレンスマニュアル [公式]
IO#read | Ruby リファレンスマニュアル [公式]
File
ドキュメント:
class File | Ruby リファレンスマニュアル [公式]
Tempfile
ドキュメント:
class Tempfile | Ruby リファレンスマニュアル [公式]
StringIO
ドキュメント:
class StringIO | Ruby リファレンスマニュアル [公式]
StringIO#string | Ruby リファレンスマニュアル [公式]
StringIO#read | Ruby リファレンスマニュアル [公式]
readlines
ドキュメント:
IO#readlines | Ruby リファレンスマニュアル [公式]
readline
ドキュメント:
IO#readline | Ruby リファレンスマニュアル [公式]
puts
ドキュメント:
IO#puts | Ruby リファレンスマニュアル [公式]
参考:
Add each array element to the lines of a file in ruby – Stack Overflow
rewind
ドキュメント:
IO#rewind | Ruby リファレンスマニュアル [公式]
モード
参考:
Ruby の File についてまとめました – Qiita
改行
- 「puts 」メソッドを使う。
- 文字列
"\n"
を出力する。 - 特殊変数
$/
の内容を出力する。
参考:
Add a new line in file? – Stack Overflow
How to do a newline in output – Stack Overflow
例外処理
参考:
よく使う File クラスを使ったファイル読み込み処理 – Qiita
例外処理を実装する時の rescue 書き方3パターン – Qiita
指定した行数だけ読み取る
参考:
終端を判定する
- 一行ずつ処理する場合は、「foreach 」メソッドを使う。
- まとめて読み取る場合は、「readlines 」メソッドを使う。
- 随時読み取りのメソッドでは、メソッドによって
EOFError
例外が投げられるものとそうでないものがある。 - 一文字読み取るメソッドの場合は、メソッドによって空文字または
nil
で判定できる場合がある。 eof?
メソッドで判定する場合は、読み取り後に判定する。- パイプやソケットなどストリームの場合、相手が送信するかクローズするまで
eof?
メソッドはブロックされる。
コード例
open(input_file) do |file|
loop do
line = file.readline(chomp: true)
puts line
rescue EOFError
puts "End of File."
break
end
end
Code language: Ruby (ruby)
ドキュメント:
EOF での読み込みメソッドの振る舞いの違い – class IO | Ruby リファレンスマニュアル [公式]
IO#eof | Ruby リファレンスマニュアル [公式]
参考: