2010-07-10 26 views
-1
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" 

即時得到錯誤,如如何解決這個I/O錯誤紅寶石

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

我不想阿米特在我的文件中printd以便我關閉文件,但我得到了這個錯誤 help me plzzz

+0

你剛纔不是問同樣的問題嗎? http://stackoverflow.com/questions/3218028/how-to-work-with-stdout-in-ruby – 2010-07-10 10:16:33

回答

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 
+0

但我可以調用任何函數使用文件對象 – Milan 2010-07-10 10:36:18