2012-04-04 3 views

답변

1

StreamReader 클래스는 파일을 한 줄씩 읽는 데 일반적으로 사용되는 클래스입니다. 파일에서 읽은 내용에 대한 기록을 유지하지 않으므로 마지막 줄이 끝난 곳이나 다음 줄이 끝나는 곳을 알 수 없습니다. 요청이있을 때 (ReadLine 통해), 문자가 새로운 줄 문자열이나 파일의 끝에 도달 할 때까지 단순히 문자를 처리합니다.

StreamReader의 실제 구현을 모르지만 멀티 바이트 인코딩을 처리하기 위해 Encoding 클래스를 사용하고 잠재적으로 사전 읽기 데이터의 작은 버퍼 만 유지한다고 가정합니다 (읽기 청크 지금 필요한 10 바이트보다 낫습니다.) 현재 줄의 문자와 같은 다른 버퍼는 그 (것)들을 필요로하는 ReadLine 같이 기능에 현지 주민일 것입니다.

무작위로 탐색해야하는 경우 BaseStream 속성을 사용하여 자신을위한 행 시작 표를 생성 한 다음 해당 행을 원하는 행의 시작 부분으로 검색해야합니다. 거기에서 평소처럼 ReadLine을 사용할 수 있어야합니다.

+0

streamreader에 오프셋 속성이 없음을 알았습니다. 베이스 스트림이 킥킥 거리는 곳인가요? 네, 저는 라인 시작 테이블이 필요합니다. –

+0

+1. 그게 다야. 알았다. –

관련 문제