✳️ ファイルのオープンモード
File.open(ファイル名, オープンモード)
open(ファイル名, オープンモード)でも実行できる:open は Kernel モジュールに定義されており、File.open を呼び出す際に、第一引数がファイル名の文字列だった場合、自動的に File.open として解釈される。
デフォルトは"r"
rは読む、wは上書き、aは追記
+を付けると、読み書き両方できるようになる。
https://gyazo.com/dc97f1fcc62693f36f034c414ff85d10
r+ですでに存在してるファイルを開いたら、内容を消さず先頭から上書きしていく
例: "abcde"と書いてあって、それに"123"と書き込みをしたら、"123de"となる。
模擬問題
code:.rb
# ファイルtest.txtを読み、文字を逆順に書き込む処理
open("test.txt", "<ファイルオープンモード>") do |f|
data = f.read.chomp # 既存のファイルを読む
data.reverse!
f.rewind # ファイルの読み書きポインタを先頭にする
f.write data # データ書き込み
end
答えの選び方
読みと書き両方したいから、その時点で候補は、両方できるr+, w+, a+ のいずれか。
test.txtが既存だったら、w+だとファイルを開いた瞬間に消去しちゃって読めなくなるので、w+は ❌
f.rewindでポインタを先頭にしてからwriteしても、a+だと末尾に追記するので意味がない → ❌
よってr+が適してる。