写入然后从文件Ruby读取

时间:2014-04-08 21:26:19

标签: ruby file-io

我正在编写一个Ruby CGI程序,它将附加到一个文件(如果它不存在则创建一个,然后写入),然后应立即读取该文件并将输出作为字符串返回。我有一个有效的方法,但是,我正在寻求优化它,因为我正在使用的方法似乎不是最有效的方法。我对Ruby比较陌生,所以任何建议都会很棒。我查看了Ruby中的File文档,但我对内存使用和优化有点不确定。非常感谢你。

def writeToFile(valuesToWrite)
   out_file = File.new("out.txt", "a+")
   out_file.puts(valuesToWrite)

   fhandle = File.new("out.txt","a+")
   lines = fhandle.readlines()

   return lines
end

2 个答案:

答案 0 :(得分:2)

试试这个:

def writeToFile(values_to_write)
  out_file = File.new("out.txt", "a+")
  out_file.puts(values_to_write)
  out_file.rewind
  lines = out_file.readlines
  out_file.close
  lines
end

答案 1 :(得分:0)

是的,您可以写如下:

def write_to_file(values_to_write)
   offset = File.size("out.txt")
   File.write("out.txt", values_to_write, offset)
   File.readlines("out.txt")
end

IO::write doc说: -

  

打开文件,可选搜索到给定的偏移量,写入字符串,然后返回写入的长度。 写入确保文件在返回之前关闭。如果未给出 offset ,则文件截断。否则,不会被截断

另请阅读IO::readlines

这里的重点是,我不需要考虑文件关闭,它将由Ruby本身完成。