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での段落ごとのファイル読み込みの方法です。これらのテクニックを使うことで、さまざまな形式のテキストファイルを効率的に処理することができます。次のセクションでは、さらに高度な読み込みメソッドについて見ていきましょう。

投稿者 hoshino

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です