如何查看文件缓冲区的当前状态?
问题描述:
我想深入了解Ruby如何管理文件缓冲。我在别处寻找答案,但我想我并没有问正确的问题。如何查看文件缓冲区的当前状态?
在IRB会议上,我打开文件进行读取:
f = File.open('somefile.txt', 'r')
使用这个命令:
puts f.gets
打印出的somefile.txt
第一线。如果我重复puts f.gets
命令,我得到第二行,依此类推。
我的问题是:
- 是由
gets
被修改的文件缓冲区? - 如果问题1的答案是肯定的,那么是否有任何方法可以查看仍然保留在缓冲区中的所有行?
- 如果问题2的答案是否定的,那么我假设
gets
有它读取的文件的最后一行的一些记录。有什么方法可以找出这条线索引的价值吗?
答
f.lineno
会给你当前的行号 f.pos
会给你当前字节偏移
完美的答案,谢谢约恩! – 2012-03-01 16:11:31