2012-12-30 18 views
3

有人可以请指导我的方式清除文件中的所有现有内容在Ruby中写入新信息?我写这本文件的内容与下面的代码:清洁红宝石文件之前写入新内容

logfile = File.new(filepath, "w") 
logfile.write("my content") 

不过,我想在这个“日志文件”的所有现有的内容之前,我写它的新的信息被删除。我怎样才能做到这一点?

+6

“w”应该工作。如[IO对象](http://ruby-docs.com/docs/ruby_1.9.3/classes/IO.html)中所述,“w”表示“只写,将现​​有文件截断为零长度或创建一个新的写作文件。“你能否确定你想要的东西还没有发生,或者说明你为什么认为文件中现有的内容没有被删除? – carols10cents

+1

以下是我用irb表示“w”删除文件中所有以前的文本的要点:https://gist.github.com/4411135 – carols10cents

回答

9

打开文件进行写入时,即使用“w”选项,文件的所有以前的内容将被删除,因此您不必为了达到该效果而明确执行任何操作。