2 flat logo on transparent 256
2018-02-18

Rubyでファイルの読み込み、書き込みを行う方法

Faile man

rubyでファイルの操作を行うにはopenメソッドでファイルを展開した後に、モードを指定してファイルの書き込み、追加を行います

Rubyでファイル操作を行う際の基本構文

File.open(ファイルの名称, mode)

ファイル展開のmodeで指定できる内容一覧

mode 概要
r 読込専用ファイル
r+ 読込/書き込み用
w 書き込み専用。ファイルがなければ新規作成、既に存在する場合はファイルサイズを0(ファイル空)にする
w+ 読込/書き込み用。その他は"w"と同じ (ファイル空)にする
a 追加「書き込み」専用 ファイルがなければ新規作成
a+ 読み込み + 追記書き込み

ファイルを読み込む

test.rb

File.open("test.txt", "r") do |f|
  puts f.read
end
test.textの内容

ファイルの読み込みが
完了しました
test.rb実行後のtest2.textの内容

ファイルの読み込みが
完了しました

ファイルを読み込み + 書き込み

追加した内容は文末に追加されます

test.rb

File.open("test.txt", "r+") do |f|
  p f.puts f.read
end
test.textの内容

Hello, World!
test.rb実行後のtest2.textの内容

Hello, World!
Hello, World!

※コンソールでtest.rbを実行した回数分テキストにHello, World!が追加されます。

ファイルを書き込む

このモードは、存在する場合は上書きされ、ファイルが存在しない場合は新規作成されます。

test.rb

File.open("test2.txt", "w") do |f|
 f.puts("ファイルを新規作成")
end
test2.textの内容

ファイルを新規作成
test.rb実行後のtest2.textの内容

ファイルを新規作成

ファイルを書き込み + 読み込み(w+)

このモードは、存在する場合は上書きされ、ファイルが存在しない場合は新規作成されます

test.rb

File.open("test2.txt", "w+") do |f|
 f.puts("ファイルを読み書き")
 f.puts f.size # ファイルサイズ
 f.puts f.atime # 最終アクセス時刻
 f.puts f.mtime # 最終更新時刻
end
test2.textの内容

ファイルを読み書き
test.rb実行後のtest2.textの内容

ファイルを読み書き
19
2018-02-18 14:46:51 +0900
2018-02-18 14:46:51 +0900

ファイルを書き込む(a)

このモードは、存在する場合は上書きされ、ファイルが存在しない場合は新規作成されます

test.rb

File.open("test2.txt", "a") do |f|
 f.puts("ファイルを追加")

end
test2.textの内容

テスト
test.rb実行後のtest2.textの内容

テスト
ファイルを追加

ファイルを書き込む(a+)

末尾から新たにデータを追加する

test.rb

File.open("test2.txt", "a+") do |f|
 f.puts("ファイルを追加")

end
test2.textの内容

テスト
test.rb実行後のtest2.textの内容

テスト
ファイルを追加

その他関連記事

Rubyの引数で使えるテクニック|キーワード引数

初心者・独学者向け|Rubyのハッシュ入門とよく使うメソッド

初心者・独学者向け|Rubyの配列処理の入門とよく使うメソッド

初心者・独学者向け|Rubyのinitializeメソッドとは

初心者・独学者向け|RubyのStringクラスとよく使うメソッド

Rubyの繰り返し処理の解説|初心者・独学者向け

Rubyの練習問題:ファイル操作編|初心者・独学者向け入門コンテンツ

前の記事
次の記事