Как я могу увидеть текущее состояние файлового буфера? - PullRequest
2 голосов
/ 01 марта 2012

Я хочу получить представление о том, как Ruby управляет буферизацией файлов.Я искал ответы в другом месте, но, думаю, я не задаю правильные вопросы.

В сеансе IRB я открыл файл для чтения:

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

Используя эту команду:

puts f.gets

печатает первую строку somefile.txt.Если я повторю команду puts f.gets, я получу вторую строку и т. Д.

Мои вопросы:

  1. Изменяется ли файловый буфер с помощью gets?
  2. Если ответ на вопрос 1 - да, то есть ли способ увидеть все строки, которые все еще остаются в буфере?
  3. Если ответ на вопрос 2 - нет, тогда япредполагая, что gets имеет некоторую запись последней строки файла, который он прочитал.Есть ли способ узнать значение этого индекса строки?

1 Ответ

1 голос
/ 01 марта 2012

f.lineno даст вам текущий номер строки f.pos даст вам текущее смещение в байтах

...