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