Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何查看文件缓冲区的当前状态?_Ruby_File_Io_Buffer - Fatal编程技术网

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

Ruby 如何查看文件缓冲区的当前状态?,ruby,file,io,buffer,Ruby,File,Io,Buffer,我想了解一下Ruby是如何管理文件缓冲的。我在别处寻找答案,但我想我问的问题不对 在IRB会话中,我打开了一个文件进行读取: f = File.open('somefile.txt', 'r') 使用此命令: puts f.gets 打印出somefile.txt的第一行。如果我重复put f.get命令,我将得到第二行,依此类推 我的问题是: 文件缓冲区是否被gets更改 如果问题1的答案是肯定的,那么有没有办法查看仍保留在缓冲区中的所有行 如果问题2的答案是否定的,那么我假设get有它读

我想了解一下Ruby是如何管理文件缓冲的。我在别处寻找答案,但我想我问的问题不对

在IRB会话中,我打开了一个文件进行读取:

f = File.open('somefile.txt', 'r')
使用此命令:

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

我的问题是:

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

  • f.lineno
    将为您提供当前行号
    f.pos
    将以字节为单位提供当前偏移量