10-1-3 ファイル操作の基本的な記述方法をおさえよう
open
メソッド
open
メソッドを使うと、ファイルを指定したモードにしたがって開くことができます。
第1引数にファイルの場所とファイル名(ファイルパス)を指定し、第2引数にモードを指定します。
ファイルを開くモードには以下のような種類がありますので、その用途によって使い分けます。
モード | 用途 | 注意事項 |
---|---|---|
r |
読み込み | 既に存在するファイルを指定。 |
r+ |
読み込み + 書き込み | 既に存在するファイルを指定。 |
w |
書き込み | 既に存在するファイルを指定した場合、既にある内容が失われるので注意。 |
w+ |
読み込み + 書き込み | 既に存在するファイルを指定した場合、既にある内容が失われるので注意。 |
a |
書き込み | 既に存在するファイルを指定した場合、末尾に追記する。既にある内容は失われない。 |
a+ |
読み込み + 書き込み | 既に存在するファイルを指定した場合、末尾に追記する。既にある内容は失われない。 |
また、open
メソッドと同様のメソッドにFile.open
があります。厳密にはopen
とFile.open
は別物ですが、同じ動作です。
open
メソッドの文法は以下の通りです。
# openメソッドの文法 open('ファイルパス', 'モード') do |ファイルポインタ| # ファイルポインタを使った処理 end
File.read
とFile.write
open
またはFile.open
メソッドを使う方法は、モードを指定してブロックで記述する必要がありますが、用途が読み込みまたは新規書き込みで限られている場合、より省略した書き方としてFile.read
とFile.write
があります。
open
メソッドを使って記述する方法と比べて、プログラムが簡潔になります。
File.read
は、引数にファイルパスを指定して使うと、ファイルの内容を全て読み込んだ結果を文字列で返却します。
File.write
は、第1引数にファイルパスを指定し、第2引数に書き込む内容を指定します。
File.read
とFile.write
の文法をまとめると以下の通りです。
# File.read File.read('ファイルパス') # 戻り値: ファイル内に記述されている文字列 # File.write File.write('ファイルパス', '書き込む文字列')
ファイル操作の基本的な記述方法のまとめ
- ファイルを操作するには
open
またはFile.open
メソッドを使う open
またはFile.open
メソッドにはファイルを開くモードが複数あり、用途によって使い分ける- 単純な読み書きでは、
File.read
とFile.write
を使って簡潔に記述できる