如何解决ruby中的这个I / O错误

时间:2010-07-10 08:27:54

标签: ruby

require 'fileutils.rb'

k=FileUtils.mkdir_p "d:/pptomasdsdr1xks_6b27"

filename = "#{k}""/kddabab"  
extension = ".txt"  
 co=1

  $stdout=File.open("#{filename}#{co}#{extension}" ,'w') 

puts "sachin" 

$stdout.close

puts "amit" 

我得到的错误就像

stdout.rb:14:在write': closed stream (IOError) from stdout.rb:14:in投放'

我不想在我的文件中打印amit以便我关闭文件但是我收到了这个错误 帮助我plzzz

2 个答案:

答案 0 :(得分:2)

请勿使用$stdout写入文件。

答案 1 :(得分:1)

请勿更改$stdout,当然也不要将旧值存储在某处,以便在完成后将其恢复。

而是在文件对象上调用puts

File.open("#{filename}#{co}#{extension}" ,'w') do |file|
  file.puts "sachin" # This goes to the file
end

puts "amit" # This goes to standard output