10-1-3 ファイル操作の基本的な記述方法をおさえよう

openメソッド

openメソッドを使うと、ファイルを指定したモードにしたがって開くことができます。

第1引数にファイルの場所とファイル名(ファイルパス)を指定し、第2引数にモードを指定します。

ファイルを開くモードには以下のような種類がありますので、その用途によって使い分けます。

モード 用途 注意事項
r 読み込み 既に存在するファイルを指定。
r+ 読み込み + 書き込み 既に存在するファイルを指定。
w 書き込み 既に存在するファイルを指定した場合、既にある内容が失われるので注意。
w+ 読み込み + 書き込み 既に存在するファイルを指定した場合、既にある内容が失われるので注意。
a 書き込み 既に存在するファイルを指定した場合、末尾に追記する。既にある内容は失われない。
a+ 読み込み + 書き込み 既に存在するファイルを指定した場合、末尾に追記する。既にある内容は失われない。

また、openメソッドと同様のメソッドにFile.openがあります。厳密にはopenFile.openは別物ですが、同じ動作です。

openメソッドの文法は以下の通りです。

# openメソッドの文法
open('ファイルパス', 'モード') do |ファイルポインタ|
  # ファイルポインタを使った処理
end

File.readFile.write

openまたはFile.openメソッドを使う方法は、モードを指定してブロックで記述する必要がありますが、用途が読み込みまたは新規書き込みで限られている場合、より省略した書き方としてFile.readFile.writeがあります。

openメソッドを使って記述する方法と比べて、プログラムが簡潔になります。

File.readは、引数にファイルパスを指定して使うと、ファイルの内容を全て読み込んだ結果を文字列で返却します。

File.writeは、第1引数にファイルパスを指定し、第2引数に書き込む内容を指定します。

File.readFile.writeの文法をまとめると以下の通りです。

# File.read
File.read('ファイルパス') # 戻り値: ファイル内に記述されている文字列

# File.write
File.write('ファイルパス', '書き込む文字列')

ファイル操作の基本的な記述方法のまとめ

  • ファイルを操作するにはopenまたはFile.openメソッドを使う
  • openまたはFile.openメソッドにはファイルを開くモードが複数あり、用途によって使い分ける
  • 単純な読み書きでは、File.readFile.writeを使って簡潔に記述できる