2010-01-08 5 views
0

메시징 (WCF) 구성 요소 용으로 약간의 도구를 만들려고합니다. 아이디어는 테스트 목적으로 이전 추적 로그를 기반으로 응답을 제공하는 것입니다. SOAP 메시지가 매우 커서 우리는 거대한 추적 파일을 가지고있는 경향이 있습니다. 내가하고 싶은 것은 내 반응을 형성하기 위해 줄마다 (가장 오래된 것부터 가장 오래된 것으로) 끝까지 흔적을 읽는 것입니다. 누구든지 내가 어떻게 할 수있는 아이디어가있다. NET에서?. FileStream 클래스는 전달 읽기 만 지원합니다.끝에서 끝까지 파일 읽기

+0

참고 사항 : [매우 큰 텍스트 파일의 마지막 10 줄 가져 오기> 10GB C#] (http://stackoverflow.com/questions/398378)), [C#에서 iterator를 사용하여 텍스트 파일을 역순으로 읽는 법] (http://stackoverflow.com/questions/452902) – hippietrail

답변

2

이러한 파일이 텍스트 파일 인 경우 유용 할 수 있습니다. 에 ReverseLineReader (또는 일부 포함)이 있습니다. 특정 인코딩 (유니 코드, UTF-8 또는 모든 고정 단일 바이트 인코딩) 만 지원하지만 잘하면 충분할 것입니다.

iterator를 통해 문자열을 반환하므로 LINQ를 사용하여 읽는 횟수를 제한 할 수 있으며 느리게 읽을 수 있습니다.

실제로 전체 파일을 읽지 않겠다고 생각합니까? 그렇다면 File.ReadAllLines을 사용한 다음 결과 배열을 뒤집을 것을 제안합니다.

+0

감사합니다. 나는 그것을 살펴볼 것이다. 그러나이 아이디어는 어떻게 구현할 수 있는지에 대한 지침을 얻는 것이 었습니다. (학습 목적으로) –

+0

예, 그렇습니다. 메모리에있는 전체 파일을 읽고 싶지는 않습니다. 관련된 추적 로그는 꽤 크다. –

+0

@AZ : 기본적으로 버퍼를 읽고 줄 바꿈을 찾기 위해 모든 종류의 것을 고려해야하기 때문에 꽤 까다 롭다. 기존 코드에서 배우려고하는 것이 좋습니다 :) –