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

C# BinaryReader 클래스로 이진 데이터 읽는 방법

C# BinaryReader 클래스란?

스트림(Stream)에서 이진(binary) 데이터를 읽어야 할 때는 C#의 BinaryReader 클래스를 사용하면 됩니다. BinaryReader는 기본 데이터 타입(double, string, int 등)을 이진 형식 그대로 손쉽게 읽어올 수 있도록 다양한 메서드를 제공합니다.

BinaryReader 클래스는 System.IO 네임스페이스에 포함되어 있으며, 사용하기 위해서는 해당 네임스페이스를 참조해야 합니다.

BinaryReader 주요 메서드

  • ReadDouble(): 스트림에서 8바이트 부동 소수점 값을 읽습니다.
  • ReadString(): 스트림에서 문자열을 읽습니다.
  • ReadInt32(), ReadBoolean() 등: 각 데이터 타입에 맞는 값을 읽는 메서드가 제공됩니다.

BinaryWriter로 파일 쓰기 및 BinaryReader로 읽기 예제

아래 예제는 먼저 BinaryWriter를 사용해 파일에 이진 데이터를 쓰고, 이후 BinaryReader로 해당 파일을 읽는 과정을 보여줍니다.

static void WriteMe() {
    using (BinaryWriter w = new BinaryWriter(File.Open("C:\\abc.txt", FileMode.Create))) {
        w.Write(25.9);
        w.Write("DEMO DATA");
    }
}

static void ReadMe() {
    using (BinaryReader r = new BinaryReader(File.Open("C:\\abc.txt", FileMode.Open))) {
        Console.WriteLine("Value : " + r.ReadDouble());
        Console.WriteLine("Value : " + r.ReadString());
    }
}

Main() 메서드에서 호출하기

위에서 작성한 두 메서드는 아래와 같이 Main() 메서드에서 호출할 수 있습니다.

static void Main(string[] args) {
    WriteMe();
    ReadMe();
    Console.ReadKey();
}

실행 결과

Value : 25.9
Value : DEMO DATA

정리

BinaryReader는 using 문과 함께 사용하는 것이 좋습니다. using 블록이 끝나면 리더가 자동으로 해제(dispose)되어 파일 핸들이 안전하게 닫히기 때문입니다. 또한 데이터를 쓴 순서와 동일한 순서로 읽어야 올바른 값을 얻을 수 있다는 점을 기억하세요.