2012-03-01 68 views
2

我想深入了解Ruby如何管理文件缓冲。我在别处寻找答案,但我想我并没有问正确的问题。如何查看文件缓冲区的当前状态?

在IRB会议上,我打开文件进行读取:

f = File.open('somefile.txt', 'r') 

使用这个命令:

puts f.gets 

打印出的somefile.txt第一线。如果我重复puts f.gets命令,我得到第二行,依此类推。

我的问题是:

  1. 是由gets被修改的文件缓冲区?
  2. 如果问题1的答案是肯定的,那么是否有任何方法可以查看仍然保留在缓冲区中的所有行?
  3. 如果问题2的答案是否定的,那么我假设gets有它读取的文件的最后一行的一些记录。有什么方法可以找出这条线索引的价值吗?

回答

1

f.lineno会给你当前的行号 f.pos会给你当前字节偏移

+0

完美的答案,谢谢约恩! – 2012-03-01 16:11:31