2011-10-17 3 views
1

".bin"파일을 완전히 읽고 스트림을 함수에 전달해야합니다. 바이트 단위로 값을 읽는 데 잘 작동하는 BinaryReader로 시도해 보았습니다. 전체 파일을 문자열 스트림으로 전달하고 싶습니다. StreamReader의 사용법은 쓰레기 정보를 제공합니다. StreamReader가 bin 파일을 제대로 읽을 수없는 것처럼 보입니다.C#에서 BinaryReader를 Stream으로 변환하는 방법은 무엇입니까?

미리 감사드립니다.

+0

당신이하고 싶은 것이 무엇인지 명확히하십시오. 스트림 객체를 함수 나 파일의 내용에 전달 하시겠습니까? 후자의 경우 파일의 내용을 바이트 배열로 전달하거나 각 바이트가 16 진수 값으로 표시되는 문자열로 전달 하시겠습니까? –

+0

파일이 유니 코드 텍스트가 아닙니다. 읽고있는 파일을 이해해야합니다. – SLaks

+0

이진 코드가 아닌 스트림을 전달해야하지만, 어디에서 읽을 수 있습니까? – Vikyboss

답변

0

이진 데이터를 string으로 전달하지 마십시오. 대신, 읽을 수있는 Stream에서 분리 된 byte[]을 사용하십시오. StreamReader은 텍스트 읽기 용이므로 BinaryReader 또는 Stream.Read() method을 직접 사용해야합니다. 읽는 스트림에서 검색을 허용하는 경우 (CanSeek 속성을 통해 공개됨) 해당 스트림의 Length을 발견하고 스트림에서 모든 바이트를 한 번에 읽을 수 있습니다.

그러나 스트림이 매우 크거나 검색을 지원하지 않으면 Read() 메서드가 0을 반환 할 때까지 청크로 읽을 때 좀 더 정교해야합니다. 도달했습니다).

이진 데이터를 읽는 데 해당하는 StreamReader.ReadToEnd()은 없지만 하나를 확장 메서드로 정의하는 것은 그리 어렵지 않습니다.

관련 문제