2012-02-07 67 views
0

目標是「BYEBYE」與「你好」紅寶石 - 寫在seeked位置

# 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 – 2012-02-07 17:14:31

+0

寫入總是在文件末尾執行,以查找位置'r +'模式寫入需要 – 2012-02-07 20:44:46

+0

http://stackoverflow.com/questions/1514448/writing對一個文件的中間紅寶石 – 2012-02-07 20:45:30

回答

1

我認爲你誤解了w +,你可能想要r +作爲模式字符串,這是w +所做的。

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

將現有文件截斷爲零長度正在吃掉你的字符串。

+0

謝謝,問題更新。 – 2012-02-07 17:07:59

+0

PLZ,正確你用'R +'模式回答,我會用它 – 2012-02-07 20:46:17

+0

修復,謝謝。 – 2012-02-07 21:48:25