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
以上。簡単だがファイルの読み書きができた。