我正在一个简单的程序中逐行读取一个文件,并且当我将这些行打印到屏幕上时,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
我正在一个简单的程序中逐行读取一个文件,并且当我将这些行打印到屏幕上时,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
这将更好地工作,如果你使用puts
这将追加一个新行终结,如果有没有一个是在结束的行,强制缓冲区刷新。
我以前从来没有碰到过这个,但我的猜测是你的最后一行没有尾随换行符,所以Netbeans控制台没有刷新行。尝试在程序结尾处添加$stdout.flush
,看看会发生什么。
顺便说一句,您可以通过使用foreach
重写稍微简化这个代码:
File.foreach("songs.txt","r") do |file|
print line
end
是的,你是对的,但我试图$ stdout.flush之前发布到这里的问题,它没有奏效。 感谢您的捷径btw;) – tuxmaul 2009-06-09 22:03:38
感谢您的工作,因为你说...;) – tuxmaul 2009-06-09 22:01:31