#12 Rubyで学ぶファイル読み書きの基本

Rubyのファイル操作は、Pythonと同じくらい手軽に書けるのが特徴です。この記事では、Rubyにおけるファイル操作の基本を解説します。

ファイルを読み込む

content = File.read("data.txt") puts content

ファイルに書き込む

File.write("data.txt", "こんにちは")

`File.write`は、指定したファイルが既に存在する場合、内容をすべて上書きする点に注意しましょう。既存の内容を残したまま追記したい場合は、後述の`File.open`をモード`"a"`で使います。

File.open("data.txt", "a") do |f| f.puts "追加の行" end

1行ずつ読み込む

File.foreach("data.txt") do |line| puts line end

ファイル全体を一度にメモリへ読み込む`File.read`と違い、`File.foreach`は1行ずつ処理するため、サイズの大きいファイルを扱う際にメモリの節約になります。

ブロックを使った安全な書き方

Pythonの`with`に似た、ブロックを使う書き方もあります。

File.open("data.txt", "r") do |f| puts f.read end

ブロックの終わりで、ファイルが自動的に閉じられます。ファイルを開くモードは`"r"`(読み込み)・`"w"`(書き込み、上書き)・`"a"`(追記)のように文字列で指定し、目的に応じて使い分けます。

ファイルの存在を確認する

存在しないファイルを読み込もうとすると`Errno::ENOENT`という例外が発生します。事前に存在を確認しておくと、想定外のエラーを防げます。

if File.exist?("data.txt") puts File.read("data.txt") else puts "ファイルが見つかりません" end

Rubyならではの注意点

`File.read`のような手軽な書き方は、ファイルを自動的に開いて閉じてくれるため、細かい処理をしない限りは特に意識する必要がありません。より細かい制御が必要な場合にだけ、`File.open`とブロックを組み合わせる、という使い分けを覚えておきましょう。また、`File.read`は改行コードを含めてそのまま読み込むため、Windows環境で作られたファイルを扱う際は改行コードの違い(`\r\n`と`\n`)によって、意図しない空行が出ることがある点も覚えておくとよいでしょう。

まとめ

Rubyのファイル操作は`File.read`・`File.write`が手軽で、`File.open`とブロックを使うとより丁寧な制御ができます。存在確認や追記モードも状況に応じて使い分けましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本