请考虑以下代码:
(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”)。
谢谢!
答案 0 :(得分:2)
如何知道以下代码仅保存最新输出(“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的单个方法调用将数组写入文件,而不是每次迭代写入一次。但是文件中的结果保持不变。