如何查看文件缓冲区的当前状态?

时间:2012-03-01 15:46:41

标签: ruby file io buffer

我希望深入了解Ruby如何管理文件缓冲。我在别处寻找答案,但我想我不是在问正确的问题。

在IRB会话中,我打开了一个文件供阅读:

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

使用此命令:

puts f.gets

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

我的问题是:

  1. 文件缓冲区是否被gets
  2. 更改
  3. 如果问题1的答案是肯定的,那么有没有办法看到仍留在缓冲区中的所有行?
  4. 如果问题2的答案为否,那么我假设gets有一些记录它读取的文件的最后一行。有没有办法找出这个行索引的价值?

1 个答案:

答案 0 :(得分:1)

f.lineno会显示当前行号 f.pos将为您提供当前的字节偏移量