Ruby - 将“循环”打印到文件

时间:2015-10-21 04:26:37

标签: ruby io

请考虑以下代码:

(1..10).each do |i| 
   thing1 = i


    aFile = File.new("input.txt", "r+")
    if aFile
        aFile.syswrite(thing1)
    else
        puts "Unable to open file!"
    end
end

我正在尝试将i的每个值(在本例中为1,2,3,...,10)打印到由一行分隔的文件中:

1
2
3
...
9
10

如何知道以下代码仅保存最新输出(“10”)。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用File#puts

  

如何知道以下代码仅保存最新输出(“10”)。

不要那样做。请改用File#puts

File.open('file', 'w') do |f|
  (1..10).each { |i| f.puts i }
end

编写数组而不是循环

请注意,上述内容可以更快,更紧凑地编写:

File.open('file', 'w') { |f| f.puts (1..10).to_a }

通过对#puts的单个方法调用将数组写入文件,而不是每次迭代写入一次。但是文件中的结果保持不变。