Ruby資格 File.openメソッド

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

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





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

rとr+の場合

r

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

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

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

r+

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

file = File.open("sample.md", "r+")
file.puts("僕の日記")
file.close

=>
僕の日記

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





wとw+の場合

w

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

file = File.open("sample.md", "w")
file.puts("僕の日記")
file.close

=>
僕の日記

w+

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

file = File.open("sample.md", "w+")
file.puts("僕の日記")
file.close

=>
僕の日記





aとa+の場合

a

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

file = File.open("sample.md", "a")
file.puts("僕の日記")
file.close

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

a+

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

file = File.open("sample.md", "a+")
file.puts("僕の日記")
file.close

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





参考

See Also