ファイル入出力

ドキュメント:

class File | Ruby リファレンスマニュアル [公式]

ファイルを開く (open)

ファイルをオープンして、IO クラスのインスタンスを返す。

ブロックが与えられた場合、指定されたファイルをオープンし、生成した IO オブジェクトを引数としてブロックを実行する。 ブロックの終了時や例外によりブロックを脱出する際、ファイルはクローズされる。ブロックを評価した値を返す。

コード例

テキストファイルをオープンして、読み出した内容を標準出力に書き出す。

text = open("test.txt") do |file|
    file.read
end
puts textCode 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

例外処理 – Qiita

例外処理を実装する時の rescue 書き方3パターン – Qiita

繰り返しの中で例外処理 – スタック・オーバーフロー

指定した行数だけ読み取る

参考:

ファイルから指定した行数ずつ読み込む – 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
endCode language: Ruby (ruby)

ドキュメント:

EOF での読み込みメソッドの振る舞いの違い – class IO | Ruby リファレンスマニュアル [公式]

IO#eof | Ruby リファレンスマニュアル [公式]

参考:

How do I detect end of file? – Stack Overflow

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA