Ruby でテキストファイルの読み書き基礎

Ruby でテキストファイルの読み書きをしてみる。

目次

ファイルの読み込み

ファイルを読み込んで出力するコードはこんな感じ。

#!/usr/bin/ruby

# ファイルをオープンして1行ずつ表示しクローズ
file = File.open('./text.txt', 'r');

file.each do |line|
  puts(line);
end

file.close();

以下はファイルオープンから一括で中身を読み取る場合。この場合、file.close() を呼ばなくとも end の時点で自動的にクローズされる。

#!/usr/bin/ruby

File.open('./text.txt', 'r') do |file|
  puts(file.read());
end

File.open() の第2引数で指定している 'r' は読み込みモードの指定。以下のように、読み込みモードと外部エンコーディング (対象ファイル)・内部エンコーディング (本スクリプト) を細かく指定して読み込んだりもできる。

file = File.open('./text.txt', mode = 'r:utf-8:utf-8');

ファイル書き込み

ファイルに書き込む場合は、'r' ではなく 'w' (新規書き込み) や 'a' (追記) といったモードでファイルをオープンすれば良い。

'w' は新規ファイル生成し、書き込んでいく。既に対象ファイルが存在する場合は、既存の中身は全て削除される。

File.open('./dest.txt', 'w') do |file|
  file.puts('Hello World');
end

'a' は追記。既存ファイルの内容はそのままに、その末尾にテキストを追加していける。

File.open('dest.txt', 'a') do |file|
  file.puts('Hello World');
end

以上。簡単だがファイルの読み書きができた。