StreamReader를 사용할 때 파일에서 읽기 시작 위치를 어떻게 지정합니까?
-
09-09-2019 - |
문제
StreamReader를 사용할 때 파일에서 읽기 시작 위치를 어떻게 지정합니까?
파일 스트림 객체와 함께 StreamReader 객체를 만들었습니다. 두 객체가 모두 만들어지면 스트리트 리더가 파일에서 읽기 시작하는 위치를 어떻게 제어 할 수 있습니까?
파일의 내용이 다음과 같다고 가정 해 봅시다.
// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name
하자 2에서 읽을 streamreader를 어떻게 제어합니까? 또한 #5와 같은 비슷한 구분 기호로 읽는 곳을 어떻게 제어 할 수 있습니까?
편집 : Delimiter에 의해 Streamreader가 읽기 시작하는 방법 ( '2.')
해결책
파일을 메모리 내 객체로 사로화하려고합니까? 그렇다면 사용시 전체 파일을 구문 분석하는 것이 좋습니다. ReadLine
또는 비슷한 것, 각 라인을 저장 한 다음 A와 같은 데이터 구조를 통해 액세스하십시오. KeyValuePair<int, string>
.
업데이트 : OK ... 새로운 정보를 사용하면 두 가지 옵션이 있다고 생각합니다. 성냥을 찾을 때까지 독서를보고 있다면 Peek()
, 캐릭터가 당신이 찾고있는 캐릭터인지 확인한 다음 Read()
. 또는 정해진 위치를 찾고 있다면 간단히 Read()
그 많은 캐릭터와 반환 가치를 버리십시오.
복잡한 구분 기호를 찾고 있다면 전체 줄이나 전체 파일을 메모리 및 사용으로 읽을 수 있습니다. 정규 표현.
도움이되기를 바랍니다 ...
다른 팁
파일에 새 라인 구분 장치가 포함 된 경우 사용할 수 있습니다. 읽기 한 번에 줄을 읽습니다.
따라서 2 행에서 읽기 시작하려면 첫 번째 줄을 읽고 버리고 5 번 줄까지 줄을 읽습니다.
콘텐츠가 그와 같은 일반 텍스트 인 경우 StreamReader의 readline 메소드를 사용해야합니다.
http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx
-이신