2009-06-09 135 views
0

我正在一个简单的程序中逐行读取一个文件,并且当我将这些行打印到屏幕上时,Netbeans 6.5.1 IDE中的输出窗口无法看到最后一行XP但是当我直接从命令行运行程序为“ruby main.rb”时没有问题(即最后一行可以看到)。我使用的是Ruby 1.8.6.Here是整个代码:红宝石和Netbeans问题

File.open("songs.txt","r") do |file| 
    file.each do |line| 
    print line 
    end 
end 

回答

2

这将更好地工作,如果你使用puts这将追加一个新行终结,如果有没有一个是在结束的行,强制缓冲区刷新。

+0

感谢您的工作,因为你说...;) – tuxmaul 2009-06-09 22:01:31

2

我以前从来没有碰到过这个,但我的猜测是你的最后一行没有尾随换行符,所以Netbeans控制台没有刷新行。尝试在程序结尾处添加$stdout.flush,看看会发生什么。

顺便说一句,您可以通过使用foreach重写稍微简化这个代码:

File.foreach("songs.txt","r") do |file| 
    print line 
end 
+0

是的,你是对的,但我试图$ stdout.flush之前发布到这里的问题,它没有奏效。 感谢您的捷径btw;) – tuxmaul 2009-06-09 22:03:38