Ruby .count操作截断输入文件

时间:2012-05-17 15:31:48

标签: ruby file-io

我想读取一个文件,并显示它有多大。 .count就像.count!并更改输入文件缓冲区的大小。所以现在logfile.each不会迭代。发生了什么事?

logfile = open(input_fspec) 
puts "logfile size: #{logfile.count} lines"

2 个答案:

答案 0 :(得分:3)

count将读取输入中的所有行以进行计数。如果您想再次阅读相关内容(例如,使用readlineeach),则需要调用logfile.rewind以返回文件的开头。

实际上,count实际返回的是尚未读取的行数。例如,如果您已经读过该文件并在之后调用count,那么它将返回0.

答案 1 :(得分:1)

在打开它之前,你可以这样做:

File.size("input_fspec")