2012-02-07 4 views
0

ゴールを書くことは「バイバイ」で「こんにちは」ルビー - シーク位置

# START: file.txt contains string "byebye World!" 
fd = File.open('file.txt', 'a') 

fd.seek(0, IO::SEEK_SET) 
fd.puts 'Hello ' 
fd.close 
# END: file.txt contains two lines "byebye World " and "Hello " 

私はそれを達成するために、他の優れた(と作業:))の方法が存在しているのか理解が、なぜそのコードドン」を置換することです正しい位置に書く?

+0

putsは 'a/a +'モードでprint –

+0

を追加します。書き込みは、常にファイルの最後で実行され、seeked位置の 'r +'モードで書き込みが行われます。 –

+0

http://stackoverflow.com/questions/1514448/writingルビーの中間ファイル –

答えて

1

あなたは誤解していると思います。あなたはr +を控えめにしたいと思うかもしれません。

w+ 
Read-write, truncates existing file to zero length or creates a new file for reading and writing. 

既存のファイルを長さゼロに切り詰めて文字列を編集しています。

+0

ありがとう、質問が更新されました。 –

+0

plz、 'r +'モードで答えてください。 –

+0

を適用します。ありがとうございます。 –