Rubyでのファイル読み込みの基本
Rubyでは、ファイルの読み込みを行うためのいくつかの方法があります。ここでは、その基本的な方法をいくつか紹介します。
ファイルオープン
まず、ファイルを開くためには File.open
メソッドを使用します。このメソッドは、ファイル名とモードを引数に取ります。モードは、ファイルを読み込み専用 ("r"
), 書き込み専用 ("w"
), 読み書き両方 ("r+"
) などで開くかを指定します。
file = File.open("example.txt", "r")
ファイルの読み込み
ファイルを開いたら、read
メソッドを使って内容を読み込むことができます。このメソッドはファイルの内容を文字列として返します。
content = file.read
puts content
ファイルのクローズ
最後に、ファイルは必ず閉じる必要があります。これは close
メソッドを使って行います。
file.close
これらの操作を一連の流れとしてまとめると、以下のようになります。
file = File.open("example.txt", "r")
content = file.read
puts content
file.close
以上が、Rubyでのファイル読み込みの基本的な手順です。次のセクションでは、さまざまな読み込みメソッドについて詳しく見ていきましょう。
getsメソッドとreadlineメソッドの使用
Rubyでは、gets
メソッドとreadline
メソッドを使用して、ファイルから一行ずつ読み込むことができます。これらのメソッドは、ファイルの内容を一行ずつ文字列として返します。
getsメソッド
gets
メソッドは、ファイルの現在の位置から一行を読み込み、それを文字列として返します。このメソッドは、ファイルの終わりに達するとnil
を返します。
file = File.open("example.txt", "r")
while line = file.gets
puts line
end
file.close
readlineメソッド
readline
メソッドもgets
メソッドと同様に一行を読み込みますが、ファイルの終わりに達した場合にはEOFError
を発生させます。これは、ファイルの終わりを検出するための別の方法です。
file = File.open("example.txt", "r")
begin
while line = file.readline
puts line
end
rescue EOFError
file.close
end
これらのメソッドを使うことで、ファイルの内容を一行ずつ処理することができます。次のセクションでは、さらに高度な読み込みメソッドについて見ていきましょう。
each_lineメソッドとforeachメソッドの使用
Rubyでは、each_line
メソッドとforeach
メソッドを使用して、ファイルから一行ずつ読み込むことができます。これらのメソッドは、ファイルの内容を一行ずつ文字列として返します。
each_lineメソッド
each_line
メソッドは、ファイルの各行に対してブロックを実行します。このメソッドは、ファイルの終わりに達するとnil
を返します。
file = File.open("example.txt", "r")
file.each_line do |line|
puts line
end
file.close
foreachメソッド
foreach
メソッドは、ファイルの各行に対してブロックを実行します。このメソッドは、ファイルを自動的に閉じるため、close
メソッドを呼び出す必要はありません。
File.foreach("example.txt") do |line|
puts line
end
これらのメソッドを使うことで、ファイルの内容を一行ずつ処理することができます。次のセクションでは、さらに高度な読み込みメソッドについて見ていきましょう。
段落ごとに読み込む方法
Rubyでは、$/
という特殊な変数を使用して、ファイルを段落ごとに読み込むことができます。この変数は、入力レコードセパレータ(通常は改行)を表します。この変数を空の文字列に設定すると、Rubyは2つの連続する改行(つまり、空の行)をレコードの終わりと見なします。
以下に、段落ごとにファイルを読み込む例を示します。
$/ = "\n\n"
File.open("example.txt", "r") do |file|
file.each_line do |paragraph|
puts paragraph
end
end
このコードは、example.txt
ファイルを開き、それを段落ごとに読み込みます。各段落は、2つの連続する改行によって区切られています。
以上が、Rubyでの段落ごとのファイル読み込みの方法です。これらのテクニックを使うことで、さまざまな形式のテキストファイルを効率的に処理することができます。次のセクションでは、さらに高度な読み込みメソッドについて見ていきましょう。