如何使用ruby写入文本文件中的特定行

时间:2015-04-28 22:49:19

标签: ruby file text file-writing

好吧,所以我有一个ruby文件和一个文本文件。代码是这样的:

fname = "sample.txt"
somefile = File.open(fname, "a")
somefile.puts "Hello file!"
somefile.close

所以我想做的不是将其添加到文件的末尾,而是将其添加到特定的行。文本文件如下所示:

names
kyle
andrew
joshua
devon

所以我希望能够在“kyle”和“andrew”之间插入文本,每个都在一个单独的行上。请帮忙

1 个答案:

答案 0 :(得分:1)

如果要编写随机行,则随机访问仅供参考:

  • 阅读文件
  • 找到要附加文字的行
  • 追加并撰写新文件
require 'stringio'
tmp = StringIO.open
origin.each do |line|
  tmp<<line
  if line == 'kyle'
    tmp << 'new line !'
  end
end
tmp.seek 0
File.open(fname, "wb").write tmp.read

该文件看起来像:

names
kyle
new line !
andrew
joshua
devon