2011-08-16 8 views
5

私はtxtファイルを持っています。その間にテキストを入れて上書きしないでください。私が例えばf.puts "aaaaaaaaaaaaaaa"を使うとき、Rubyは自分のtxtファイルを上書きするからです。あなたは追加モードで既存のファイルにテキストを挿入する

File.open("file.txt", "a+"){|f| f << "aaaaaaaaaaaaaaaaaaa" } 

それを開く必要があり おかげ

答えて

4

はあなたが次のように、既存のファイルの中央にテキストを挿入する方法を求めている場合は、することはできません:

Original file first half, Original File second half 

になります:

Original file first half, Inserted text, Original File second half 

新しいファイルを作成し、元のファイルの最初の部分をコピーして、新しいテキストをn元のファイルの残りの部分をコピーします。

16

はあなたが上のオープンを使用している場合、ファイルのモードを設定するために持っているあなたの前の質問

File opening mode in Ruby

+0

より正確には、書き込みモードではなく、追加モードになります。 http://www.ruby-doc.org/core/classes/IO.html – Ryanmt

+0

@Ryanmt彼は私が理解するように、それを上書きしないようにテキストを追加する必要があります。 – fl00r

+0

合意は、彼の目的ですが、あなたの答えは「正しいモード "は正確ではなかったので、私は明確にすると思った。 – Ryanmt