打印到控制台并同时写入文件Ruby

时间:2015-03-13 07:29:46

标签: ruby output

我正在尝试在ruby中编写一些代码,它允许我将测试的输出打印到控制台并将相同的输出打印到文件中。我目前在下面这样做的方式似乎是多余的。

f = File.open("ExampleText.txt", "w")

if example1 > example2 then
    print("Do it")
    f.print("Do it")
else 
    print("Don't do it")
    f.print ("Don't do it")
end

1 个答案:

答案 0 :(得分:0)

您可以编写一个简单的方法来执行您正在执行的操作,并在您的条件中调用该方法。这里:

def write_and_display(str, file)
  puts str
  file.puts str
end

f = File.open("ExampleText.txt", "w")
if example1 > example2
  write_and_display("do this", f)
else
  write_and_display("dont do it", f)
end

或者,您也可以编写一个将写入多个IO对象的伪IO类。在此SO讨论的内容:https://stackoverflow.com/a/6407200/3035830