繁体   English   中英

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

[英]How to write to a specific line in a text file using ruby

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

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

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

names
kyle
andrew
joshua
devon

因此,我希望能够在“凯尔”和“安德鲁”之间插入文本,并且每个文本都在单独的一行上。 请帮忙

如果要写入随机行,则随机访问仅用于只读目的:

  • 读取文件
  • 找到要追加文本的行
  • 追加并写入新文件
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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM