2012-03-01 4 views
2

Ruby가 파일 버퍼링을 관리하는 방법에 대한 통찰력을 얻고 싶습니다. 나는 그 답을 찾기 위해 다른 곳을 찾았지만 나는 올바른 질문을하지는 않을 것이라고 생각한다. 파일 버퍼의 현재 상태를 어떻게 볼 수 있습니까?

은 IRB 세션에서 내가 읽기 위해 파일을 열 : somefile.txt의 첫 번째 라인 출력

puts f.gets 

인쇄 :

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

이 명령을 사용하여. puts f.gets 명령을 반복하면 두 번째 줄을 얻습니다.

내 질문은 :

  1. gets에 의해 변경되는 파일 버퍼인가?
  2. 질문 1의 대답이 '예'이면 버퍼에 남아있는 모든 줄을 볼 수있는 방법이 있습니까?
  3. 2 번 질문에 대한 대답이 '아니오'인 경우 gets에는 읽은 파일의 마지막 줄에 대한 일부 레코드가 있다고 가정합니다. 이 라인 인덱스의 가치를 알아낼 방법이 있습니까?

답변

1

f.lineno 당신에게 요안 감사합니다, 당신에게 수 f.pos 당신에게

+0

완벽한 해답 바이트의 현재의 오프셋 (offset)를 줄 것이다 현재 행을 줄 것이다! –

관련 문제