File.readというクラスメソッドを使うと、ファイルのデータを全部一気に読み込めます。
ただし、ファイルサイズが大きい場合などは、処理に延々と時間がかかってしまう危険があります。
前のページ(ファイルを読み込み、ファイルを新規作成し書き込む - Ruby入門勉強ルーム)で使った、以下のデータファイルを読み込んで、別ファイルにコピーする例です。
number.dat
3,6,455,64 23,67,10,2925, 53,67,487 30,57, 12,65,89,3432,456
output = File.read("number.dat")
output_file2 = File.open("output_number2.dat", "w")
output_file2.write(output)
p output_file2.closed?
output_file2.close
p output_file2.closed?
ファイルをすべて読み込み、別ファイルに書き出すだけなら4行で済みます。
下の3行は、ファイルをクローズした(閉じた)かどうか確認するメソッドclosed?の動作を確認しています。
コンソールの出力結果。
false true
closeメソッドの前は、closed?メソッドはfalseを返し、後ではtrueを返しています。
では、以下がデータが書き込まれたファイルの内容です。
output_number2.dat
3,6,455,64 23,67,10,2925, 53,67,487 30,57, 12,65,89,3432,456
読み込み元ファイルの内容と同じ内容が、新しくoutput_number2.datファイルに書き込まれています。
■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/389