2016-08-08 59 views
0

我有一個文件,其中我想存儲一些數據。Ruby:在文件中添加行

使用IRB,我可以在文件中添加不同的行。然而,使用寫在一個文件中的Ruby腳本,我有問題。

我可以寫一行,它應該是存儲的,但是當我重新啓動腳本並重新使用該方法時,它將覆蓋文件中的內容,而不是在下一行添加內容。

def create_new_account 
    puts "Set the account's name" 
    @account_name = gets 
    puts "New account's name: #{@account_name} 
    open("accounts.txt","w+") do |account_file| 
     account_file.write "ac;#{@account_name}\n" 

    end 
end 

我當時一看該方法open的不同參數,但好像它不存在。 此外,我試過puts而不是write,但沒有區別,總是出現同樣的問題。

有人能幫我理解代碼有什麼問題嗎?

感謝

+0

http://stackoverflow.com/questions/3682359/what-are-the-ruby-file-open-modes-and-options但如上所述,你需要追加 – Doon

回答

0

嘗試打開該文件中append mode像這樣

open('accounts.txt', 'a+') 

否則文件被打開,從而覆蓋現有的數據。

「a」 - 只寫,每個寫入調用在文件末尾附加數據。 如果文件不存在,則創建一個用於寫入的新文件。