Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 바이트 배열을 메모리 스트림(MemoryStream)으로 변환하는 방법

스트림(Stream)은 모든 스트림의 추상 기본 클래스로, 바이트 시퀀스에 대한 일반적인 뷰를 제공합니다. 스트림 객체는 읽기(Reading), 쓰기(Writing), 탐색(Seeking)이라는 세 가지 기본 작업을 수행할 수 있습니다. 또한 스트림은 재설정(reset)이 가능하기 때문에 성능 향상에도 도움이 됩니다.

C#에서는 MemoryStream 클래스를 사용하면 바이트 배열을 아주 간단하게 메모리 스트림으로 변환할 수 있습니다. MemoryStream 생성자에 바이트 배열을 인자로 전달하기만 하면 됩니다.

MemoryStream stream = new MemoryStream(byteArray);

예제 코드

다음 예제에서는 값 1, 2, 3, 4, 5를 담고 있는 바이트 배열을 준비한 뒤, 이를 MemoryStream으로 변환하고 BinaryReader를 사용하여 각 바이트 값을 순서대로 읽어 콘솔에 출력합니다.

using System;
using System.IO;
namespace DemoApplication {
    class Program {
        static void Main(string[] args) {
            byte[] byteArray = new byte[5] {1, 2, 3, 4, 5 };
            using (MemoryStream stream = new MemoryStream(byteArray)) {
                using (BinaryReader reader = new BinaryReader(stream)) {
                    for (int i = 0; i < byteArray.Length; i++) {
                        byte result = reader.ReadByte();
                        Console.WriteLine(result);
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

코드 설명

  • byteArray: 변환 대상이 되는 바이트 배열입니다.
  • MemoryStream: 바이트 배열을 받아 메모리 상에서 읽고 쓸 수 있는 스트림을 생성합니다.
  • BinaryReader: 스트림에서 원시 데이터 형식(여기서는 byte)을 편리하게 읽을 수 있게 해줍니다.
  • using 문: 스트림과 리더가 사용이 끝난 후 자동으로 해제되도록 보장하여 리소스 누수를 방지합니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

1
2
3
4
5