답변:
바이트 배열을 스트림으로 변환하는 가장 쉬운 방법은 MemoryStream
클래스를 사용하는 것 입니다.
Stream stream = new MemoryStream(byteArray);
stream.ToArray()
바이트 배열을 다시 원한다면 여전히 사용할 수 있습니다 .
당신은 MemoryStream.Write
방법을 찾고 있습니다.
예를 들어 다음 코드는 byte[]
배열 의 내용을 메모리 스트림에 씁니다.
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
또는 바이트 배열을 기반으로 크기를 조정할 수없는 새MemoryStream
객체를 만들 수 있습니다 .
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Write
은 훨씬 더 많은 메모리를 소비합니다.new MemoryStream(myByteArray)
MemoryStream
기본적으로 버퍼에 추가 공간이 할당됩니다 (예 : 목록과 동일). 용량을 설정할 수있는 오버로드를 사용하여 쉽게 처리 할 수 있지만 스트림에 데이터를 쓰지 않을 것으로 예상되는 경우 (또는 필요한 추가 바이트 수를 알고있는 경우에만) 실제로 유용합니다 ). 그러나 jitbit이 byte[]
생성자 를 사용할 때 배열이 복사되지 않는다는 사실을 언급 할 수 있다고 생각합니다 MemoryStream
. 인수에서 배열을 나타냅니다. 이것은 좋고 나쁠 수 있으며, MSDN에 문서화되어 있지 않은 것은 부끄러운 일입니다. :)
MemoryStream
수업을 살펴보십시오 .