Я хочу получить представление о том, как Ruby управляет буферизацией файлов.Я искал ответы в другом месте, но, думаю, я не задаю правильные вопросы.
В сеансе IRB я открыл файл для чтения:
f = File.open('somefile.txt', 'r')
Используя эту команду:
puts f.gets
печатает первую строку somefile.txt
.Если я повторю команду puts f.gets
, я получу вторую строку и т. Д.
Мои вопросы:
- Изменяется ли файловый буфер с помощью
gets
? - Если ответ на вопрос 1 - да, то есть ли способ увидеть все строки, которые все еще остаются в буфере?
- Если ответ на вопрос 2 - нет, тогда япредполагая, что
gets
имеет некоторую запись последней строки файла, который он прочитал.Есть ли способ узнать значение этого индекса строки?