문제

파일을 통해 버퍼링 리더가 루핑되어 있습니다. 특정 사례를 쳤을 때 독자의 다른 인스턴스를 사용하여 계속 반복하지만이 시점에서 시작합니다.

권장 솔루션에 대한 아이디어가 있습니까? 별도의 판독기를 만들고 마크 함수를 사용 하시겠습니까?

도움이 되었습니까?

해결책

내 의견에 대한 귀하의 대답을 기다리는 동안, 나는 가정에 갇혀 있습니다.

그것이 당신이 가치가 당신이 가치가 있다면, 당신은 내가 그것을 발견하는 것만 큼 즐겁게 놀랐을 것입니다. RandomAccessFile 이제 (1.4 또는 1.5 이후)를 지원합니다 readLine 방법. 물론 RandomAccessFile은 위치에 대한 세밀한 제어를 제공합니다.

버퍼링 된 IO를 원한다면 독자를 주위에 포장하는 것을 고려할 수 있습니다. CharacterBuffer 아니면 아마도 ByteBuffer 맵핑 된 파일 주위에 nio API. 이를 통해 파일을 메모리로 처리하고 읽기 포인터를 잘 제어 할 수 있습니다. 데이터가 모두 메모리에 있기 때문에 버퍼링은 무료로 포함됩니다.

다른 팁

당신은 보셨습니까? BufferedReader'에스 mark 방법? 함께 사용됩니다 reset 그것은 당신의 필요를 충족시킬 수 있습니다.

지금까지 읽은 캐릭터 수를 추적하면 새 버퍼드 리더를 만들고 사용할 수 있습니다. 건너 뛰기.

Noel이 지적했듯이 사용을 피해야합니다. BufferedReader.readLine(), 부터 readLine() 최신 라인을 폐기하고 캐릭터가 부정확하게 계산됩니다. 다른 사람이 코드를 유지해야한다면 Readline ()에 의존해서는 안됩니다.

사용하기로 결정한 경우 skip, 당신은 당신에게 버퍼링 된 독자를 작성하여 최신 라인을 계산하는 오프셋을 제공해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top