2008-08-19 8 views
16

파싱 프로그램에서 이진 파일을 읽습니다. 파일을 반복하고 특정 마커를 찾아 파일을 분할하여 해당 부분의 객체 생성자로 전달할 수 있도록해야합니다.바이트 배열과 MemoryStream의 차이점

파일을 스트림 (MemoryStream 또는 FileStream)으로 유지하는 것이 유리합니까? 아니면 바이트 [] 배열로 변환해야합니까?

키스

답변

24

byte[] 또는 MemoryStream 모두 전체 파일을 메모리에 가져와야합니다. MemoryStream은 실제로 기본 바이트 배열 주위의 래퍼입니다. 가장 좋은 방법은 FileStream 두 개 (입력 용과 출력용)입니다. 현재 출력 파일에 쓰는 동안 파일을 구분해야한다는 것을 나타내는 패턴을 찾는 입력 스트림을 읽습니다.

시나리오에 가치를 추가하는 경우 입력 파일과 출력 파일을 각각 BinaryReaderBinaryWriter에 배치하는 것이 좋습니다.

7

MemoryStream을 기본적 스트림 인터페이스, 예를 들어와 바이트 배열 순차적 읽기/쓰기 및 현재 위치 개념.