• ベストアンサー

Rubyのファイル上書き

rubyの初心者です。 ファイルの上書きをしたいのですが、File.open(filename,"a") ブロック を使うとファイルの一番下に文章が追加されてしまいます。 元のファイルの上にデータを追加したいと考えています。 今はファイルを配列にまとめて、データを加えて並び替えてとごちゃごちゃしたやり方になってしまっています。 なにかスマートな方法があればご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

ファイルの先頭に追加する手段はありません。 一度全部読んで、追加したいデータと合わせて、元のファイルに上書きして下さい。 adddata = "追加したいデータ" olddata = open("ファイル名"){|f| f.read} open("ファイル名","w"){|f| f.print(adddata + olddata)}