読者です 読者をやめる 読者になる 読者になる

Bonkura - Kenny

SIerで働く文系SEの記録

【たのしいRuby_17】I/Oクラス

たのしいRubyの第17章を学んだ。

たのしいRuby 第4版

たのしいRuby 第4版

プログラムの外部とデータをやり取りする為の機能として、入力(Input)と出力(Output)を提供する。

標準入出力

プログラムを起動すると、3つのI/Oオブジェクトが予め割り当てられている。

標準入力

標準出力

標準エラー出力

ファイルの入出力

ファイルを開く

io = File.open(fil,mode)
  • mode:どのような目的でファイルを開くか?デフォルトは読み取り専用("r")。他にも"w"(書き込み専用)など。

ファイルを閉じる

io.close

File.openメソッドにブロックを渡すと自動的に閉じれくれる。

ファイルのデータを一度に読み込む

data = File.read("hoge.txt")

基本的な入出力テンプレ

File.open("hoge.txt") do |io|
  io.each_line do |line|
    line.chomp!
    p line
  end
end

ファイルポインタ

効率よくデータを読み書きするために、ファイルを固定サイズのブロックの集まりと考えて、データの位置を決め打ちでアクセスする。 IOオブジェクトがファイルのどこを指しているか? と示す情報を ファイルポインタ(カレントファイルオフセット) という。