ファイルの読み書き(Fileクラス)

RubyのFileクラスは、ファイルの読み書きを行うための基本的かつ強力なクラスです。以下では、Fileクラスを使った基本的な読み書きの方法について詳しく解説します。


1. ファイルを開く

Rubyでは、File.openメソッドを使ってファイルを開くことができます。開く際には「モード」を指定して、読み込み用なのか書き込み用なのかを設定します。

主なモードの例

モード 意味
"r" 読み込み専用(既存ファイル)
"w" 書き込み専用(上書き)
"a" 書き込み専用(追記)
"r+" 読み書き(既存ファイル)
"w+" 読み書き(上書き)
"a+" 読み書き(追記)

2. ファイルの読み込み

方法1:File.read(すべてを一度に読み込む)

ruby
content = File.read("example.txt") puts content

方法2:File.openとブロックを使って1行ずつ読み込む

ruby
File.open("example.txt", "r") do |file| file.each_line do |line| puts line end end

File.openにブロックを渡すと、ファイルは自動的に閉じられます。


3. ファイルへの書き込み

方法1:File.write(全内容を一度に書き込む)

ruby
File.write("example.txt", "Hello, world!")

※ 既存の内容は上書きされます。

方法2:File.openとブロックで1行ずつ書き込む

ruby
File.open("example.txt", "w") do |file| file.puts "Line 1" file.puts "Line 2" end

方法3:追記モードで書き込む

ruby
File.open("example.txt", "a") do |file| file.puts "追加された行" end

4. ファイルが存在するか確認

ruby
if File.exist?("example.txt") puts "ファイルは存在します。" else puts "ファイルが存在しません。" end

5. ファイルを明示的に閉じる(ブロックを使わない場合)

ruby
file = File.open("example.txt", "r") puts file.read file.close

ブロックを使うことが推奨される理由は、例外が発生したときでも自動的にcloseされるため、安全だからです。


まとめ

RubyのFileクラスを使えば、シンプルな構文で強力なファイル操作が可能です。以下の点を押さえると良いでしょう。

  • 読み込みには"r"モード、書き込みには"w""a"モードを使用する。

  • ブロック付きのFile.openを使うとファイルを安全に開閉できる。

  • File.readFile.writeは一括操作に便利。

  • ファイル存在確認やファイルサイズ取得などの補助的メソッドも豊富。

生成日:2025/05/03