2012-11-04 28 views
0

我有一個文本文件,路徑名爲file,以及我想附加到它的一些內容string。我想要做一些接近Unchomping一個文件,然後附加一個字符串

File.open(file, "a"){|io| io.puts(string)} 

但如果文件的原始內容不以底線字符$/結束了,我要插入一個string之前。什麼是最有效的方法來做到這一點?

回答

1
File.open(file, 'r+') do |f| 
    unless (last = f.readlines[-1]) && last.end_with?($/) 
    f.puts $/ 
    end 

    f.puts string 
end 
+0

我雖然答案看起來像這樣,但沒有考慮使用'r +'模式。 – sawa

-2
File.open(file, "a"){ |io| 
    io.puts 
    io.puts(string) 
} 
+0

即使在原始內容有底線字符結尾這將增加一個底線字符。 – sawa

+0

然後你必須讀取文件的最後一行,如果它是空的,添加一個結尾字符 – demas

+0

最後一行是否爲空並不重要。 – sawa

相關問題