C# 바이너리 읽기 및 쓰기

20547 단어 C#
BinaryReaderBinaryWriter 클래스는 바이너리 파일을 읽고 쓰는 데 사용됩니다.

BinaryReader 클래스

BinaryReader 클래스는 파일에서 바이너리 데이터를 읽는 데 사용됩니다.FileStream 대상을 구조 함수에 전달함으로써 BinaryReader 대상을 만든다.
다음 표는 BinaryReader류의 상용 방법을 소개하였다.

BinaryWriter 클래스

BinaryWriter 클래스는 바이너리 데이터를 스트림에 쓰는 데 사용됩니다.FileStream 대상을 구조 함수에 전달함으로써 BinaryWriter 대상을 만든다.
다음 표는 BinaryWriter류의 상용 방법을 소개하였다.
번호
메서드
묘사
1 public override void Close()
그것은 BinaryWriter 대상과 밑바닥 흐름을 닫는다.
2 public virtual void Flush()
현재 쓰기의 모든 버퍼를 지우고, 모든 버퍼 데이터를 베이스 장치에 기록합니다.
3 public virtual long Seek(int offset, SeekOrigin origin)
현재 흐름의 위치를 설정합니다.
4 public virtual void Write(bool value)
한 바이트의 브리 값을 현재 흐름에 기록합니다. 그 중에서 0false101true입니다.
5 public virtual void Write(byte value)
현재 흐름에 기호가 없는 바이트를 쓰고, 흐름의 위치를 한 바이트 앞당깁니다.
6 public virtual void Write(byte[] buffer)
바이트 그룹을 밑바닥 흐름에 기록합니다.
7 public virtual void Write(char ch)
현재 스트림에 유니코드 문자를 쓰고 사용되는 인코딩에 따라 스트림의 현재 위치에 특정 문자를 씁니다.
8 public virtual void Write(char[] chars)
현재 흐름에 문자 배열을 쓰고 인코딩과 특정 문자에 따라 흐름의 현재 위치를 기록합니다.
9 public virtual void Write(double value) 8바이트의 부동 소수점 값을 현재 흐름에 쓰고 흐름 위치를 8비트 앞당깁니다.
10 public virtual void Write(int value) 4바이트의 기호 정수를 현재 흐름에 쓰고, 흐름의 위치를 4바이트 앞당깁니다.
11 public virtual void Write(string value) BinaryWriter의 현재 인코딩에서 접두사 길이의 문자열을 이 흐름에 기록하고 사용한 인코딩과 특정 문자를 흐름에 기록함으로써 흐름의 현재 위치를 앞당깁니다.
메서드의 전체 목록은 Microsoft C# 설명서를 참조하십시오.

예제


다음 예제에서는 바이너리 데이터를 읽고 쓰는 것을 보여 줍니다.
using System;
using System.IO;

namespace BinaryFileApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         BinaryWriter bw;
         BinaryReader br;
         int i = 25;
         double d = 3.14157;
         bool b = true;
         string s = "I am happy";

         //create the file
         try
         {
            bw = new BinaryWriter(new FileStream("mydata", FileMode.Create));
         }
         catch (IOException e)
         {
            Console.WriteLine(e.Message + "
Cannot create file."
); return; } //writing into the file try { bw.Write(i); bw.Write(d); bw.Write(b); bw.Write(s); } catch (IOException e) { Console.WriteLine(e.Message + "
Cannot write to file."
); return; } bw.Close(); //reading from the file try { br = new BinaryReader(new FileStream("mydata", FileMode.Open)); } catch (IOException e) { Console.WriteLine(e.Message + "
Cannot open file."
); return; } try { i = br.ReadInt32(); Console.WriteLine("Integer data: {0}", i); d = br.ReadDouble(); Console.WriteLine("Double data: {0}", d); b = br.ReadBoolean(); Console.WriteLine("Boolean data: {0}", b); s = br.ReadString(); Console.WriteLine("String data: {0}", s); } catch (IOException e) { Console.WriteLine(e.Message + "
Cannot read from file."
); return; } br.Close(); Console.ReadKey(); } } }

C#
이러한 코드가 컴파일되고 실행되면 다음과 같은 결과가 발생합니다.
Integer data: 25
Double data: 3.14157
Boolean data: True
String data: I am happy

좋은 웹페이지 즐겨찾기