bokunonikki.net

Ruby資格 File.openメソッド

Thu Aug 16, 2018
Thu Jun 24, 2021

Rubyシルバー試験によく出るFile.openメソッドのモードについてまとめます。

モード 説明
“r” 読み込みモード。引数に何も指定がない場合はこれがデフォルト。
“w” 書き込みモード。既存ファイルの場合はファイルの内容を空にする。
“a” 追記モード。常にファイルの末尾に追加される。
“r+” 読み書きモード。ファイルの読み書き位置が先頭になる。
“w+” 読み書きモード。r+と同じだが、既存のファイルの場合はファイルの内容が空になる。
“a+” 読み書きモード。ファイルの読み込み位置は先頭に、書き込み位置は常に末尾になる。
1
2
3
4
<!-- サンプルコードsample.md -->

Rubyとは...
オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。

rとr+の場合

r

読み込みモード。引数に何も指定がない場合はこれがデフォルト。

1
2
3
4
5
6
7
file = File.open("sample.md") #rはデフォルトなので省略可能
 puts file.read        
file.close

=>
Rubyとは...
オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。

r+

読み書きモード。ファイルの読み書き位置が先頭になる。

1
2
3
4
5
6
7
8
file = File.open("sample.md", "r+")
file.puts("僕の日記")
file.close

=>
僕の日記

オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。

wとw+の場合

w

書き込みモード。既存ファイルの場合はファイルの内容を空にする。

1
2
3
4
5
6
file = File.open("sample.md", "w")
file.puts("僕の日記")
file.close

=>
僕の日記

w+

読み書きモード。r+と同じだが、既存のファイルの場合はファイルの内容が空になる。

1
2
3
4
5
6
file = File.open("sample.md", "w+")
file.puts("僕の日記")
file.close

=>
僕の日記

aとa+の場合

a

追記モード。常にファイルの末尾に追加される。

1
2
3
4
5
6
7
8
file = File.open("sample.md", "a")
file.puts("僕の日記")
file.close

=>
Rubyとは...
オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。
僕の日記

a+

読み書きモード。ファイルの読み込み位置は先頭に、書き込み位置は常に末尾になる。

1
2
3
4
5
6
7
8
file = File.open("sample.md", "a+")
file.puts("僕の日記")
file.close

=>
Rubyとは...
オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。
僕の日記

参考

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで

See Also