来自文件的ruby输出。

时间:2016-06-19 05:41:55

标签: ruby file-io

我想将数据(整数)输出到名为stdout.txt的文件中。 麻烦似乎是我的代码覆盖了文件中的现有数据 而不是逐行添加。

if failPlaces.empty? == false
  puts "position: #{failPlaces.last}"
  output = File.open( "stdout","w" )
  output << "#{failPlaces.last}\n"
  output.close
else
  puts "He Passes it!!!!!!!!!!!!!!!!!"
  output = File.open( "stdout","w" )
  output << "Pass\n"
  output.close
end

我想了解为什么我的代码表现得像这样,解决方案是什么。

1 个答案:

答案 0 :(得分:1)

给定名为 stdout.txt 的文件,您可以这样写(请记住使用a而不是w)。 w会覆盖文件中的所有内容,而a会在文件存在时附加,否则会创建一个新文件。

以下是Ruby IO modes

的列表
failPlaces = [1, 2]

if failPlaces.empty?
  puts "He Passes it!!!!!!!!!!!!!!!!!"
  output = File.open('stdout.txt', 'a')
  output << "Pass\n"
  output.close
else
  puts "position: #{failPlaces.last}"
  output = File.open('stdout.txt', 'a')
  output << "#{failPlaces.last}\n"
  output.close
end