다음을 통해 공유


BinaryWriter 클래스

정의

이진 파일의 기본 형식을 스트림에 쓰고 특정 인코딩에서 문자열 작성을 지원합니다.

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
상속
BinaryWriter
특성
구현

예제

다음 코드 예제에서는 파일에 애플리케이션 설정을 저장하고 검색하는 방법을 보여 줍니다.

using System;
using System.IO;
using System.Text;

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (var stream = File.Open(fileName, FileMode.Create))
        {
            using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
            {
                writer.Write(1.250F);
                writer.Write(@"c:\Temp");
                writer.Write(10);
                writer.Write(true);
            }
        }
    }

    public static void DisplayValues()
    {
        float aspectRatio;
        string tempDirectory;
        int autoSaveTime;
        bool showStatusBar;

        if (File.Exists(fileName))
        {
            using (var stream = File.Open(fileName, FileMode.Open))
            {
                using (var reader = new BinaryReader(stream, Encoding.UTF8, false))
                {
                    aspectRatio = reader.ReadSingle();
                    tempDirectory = reader.ReadString();
                    autoSaveTime = reader.ReadInt32();
                    showStatusBar = reader.ReadBoolean();
                }
            }

            Console.WriteLine("Aspect ratio set to: " + aspectRatio);
            Console.WriteLine("Temp directory is: " + tempDirectory);
            Console.WriteLine("Auto save time set to: " + autoSaveTime);
            Console.WriteLine("Show status bar: " + showStatusBar);
        }
    }
}
open System.IO
open System.Text

let fileName = "AppSettings.dat"

let writeDefaultValues () =
    use stream = File.Open(fileName, FileMode.Create)
    use writer = new BinaryWriter(stream, Encoding.UTF8, false)
    writer.Write 1.250F
    writer.Write @"c:\Temp"
    writer.Write 10
    writer.Write true

let displayValues () =
    if File.Exists fileName then
        use stream = File.Open(fileName, FileMode.Open)
        use reader = new BinaryReader(stream, Encoding.UTF8, false)
        let aspectRatio = reader.ReadSingle()
        let tempDirectory = reader.ReadString()
        let autoSaveTime = reader.ReadInt32()
        let showStatusBar = reader.ReadBoolean()

        printfn $"Aspect ratio set to: {aspectRatio}"
        printfn $"Temp directory is: {tempDirectory}"
        printfn $"Auto save time set to: {autoSaveTime}"
        printfn $"Show status bar: {showStatusBar}"

writeDefaultValues ()
displayValues ()
Imports System.IO

Module Module1
    Const fileName As String = "AppSettings.dat"

    Sub Main()
        WriteDefaultValues()
        DisplayValues()
    End Sub

    Sub WriteDefaultValues()
        Using writer As BinaryWriter = New BinaryWriter(File.Open(fileName, FileMode.Create))
            writer.Write(1.25F)
            writer.Write("c:\Temp")
            writer.Write(10)
            writer.Write(True)
        End Using
    End Sub

    Sub DisplayValues()
        Dim aspectRatio As Single
        Dim tempDirectory As String
        Dim autoSaveTime As Integer
        Dim showStatusBar As Boolean

        If (File.Exists(fileName)) Then

            Using reader As BinaryReader = New BinaryReader(File.Open(fileName, FileMode.Open))
                aspectRatio = reader.ReadSingle()
                tempDirectory = reader.ReadString()
                autoSaveTime = reader.ReadInt32()
                showStatusBar = reader.ReadBoolean()
            End Using

            Console.WriteLine("Aspect ratio set to: " & aspectRatio)
            Console.WriteLine("Temp directory is: " & tempDirectory)
            Console.WriteLine("Auto save time set to: " & autoSaveTime)
            Console.WriteLine("Show status bar: " & showStatusBar)
        End If
    End Sub

End Module

설명

BinaryWriter 클래스는 기본 데이터 형식을 스트림에 간단하게 쓰는 메서드를 제공합니다. 예를 들어 Write 메서드를 사용하여 스트림에 부울 값을 1 바이트 값으로 쓸 수 있습니다. 클래스에는 다양한 데이터 형식을 지원하는 쓰기 메서드가 포함됩니다.

BinaryWriter 클래스의 새 인스턴스를 만들 때 쓸 스트림을 제공하고 선택적으로 인코딩 유형과 BinaryWriter 개체를 삭제한 후 스트림을 열어 둘지 여부를 지정합니다. 인코딩 형식을 지정하지 않으면 UTF-8이 사용됩니다.

중요하다

이 형식은 IDisposable 인터페이스를 구현합니다. 형식 사용을 마쳤으면 직접 또는 간접적으로 삭제해야 합니다. 형식을 직접 삭제하려면 try/catch 블록에서 해당 Dispose 메서드를 호출합니다. 간접적으로 삭제하려면 using(C#) 또는 Using(Visual Basic)와 같은 언어 구문을 사용합니다. 자세한 내용은 IDisposable 인터페이스 항목의 "IDisposable을 구현하는 개체 사용" 섹션을 참조하세요.

파생 클래스는 이 클래스의 메서드를 재정의하여 고유한 문자 인코딩을 제공할 수 있습니다.

생성자

BinaryWriter()

스트림에 쓰는 BinaryWriter 클래스의 새 인스턴스를 초기화합니다.

BinaryWriter(Stream)

지정된 스트림 및 UTF-8 인코딩을 사용하여 BinaryWriter 클래스의 새 인스턴스를 초기화합니다.

BinaryWriter(Stream, Encoding)

지정된 스트림 및 문자 인코딩을 기반으로 BinaryWriter 클래스의 새 인스턴스를 초기화합니다.

BinaryWriter(Stream, Encoding, Boolean)

지정된 스트림 및 문자 인코딩을 기반으로 BinaryWriter 클래스의 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다.

필드

Null

백업 저장소가 없는 BinaryWriter 지정합니다.

OutStream

기본 스트림을 보유합니다.

속성

BaseStream

BinaryWriter기본 스트림을 가져옵니다.

메서드

Close()

현재 BinaryWriter 및 기본 스트림을 닫습니다.

Dispose()

BinaryWriter 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

Dispose(Boolean)

BinaryWriter 사용하는 관리되지 않는 리소스를 해제하고 필요에 따라 관리되는 리소스를 해제합니다.

DisposeAsync()

BinaryWriter 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 비동기적으로 해제합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
Flush()

현재 기록기에 대한 모든 버퍼를 지우고 버퍼링된 데이터가 기본 디바이스에 기록되도록 합니다.

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Seek(Int32, SeekOrigin)

현재 스트림 내의 위치를 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
Write(Boolean)

현재 스트림에 1 바이트 Boolean 값을 씁니다. 0은 false 나타내고 1은 true나타냅니다.

Write(Byte)

부호 없는 바이트를 현재 스트림에 쓰고 스트림 위치를 1 바이트씩 진행합니다.

Write(Byte[])

바이트 배열을 기본 스트림에 씁니다.

Write(Byte[], Int32, Int32)

바이트 배열의 영역을 현재 스트림에 씁니다.

Write(Char)

유니코드 문자를 현재 스트림에 쓰고 사용된 Encoding 스트림에 기록되는 특정 문자에 따라 스트림의 현재 위치를 앞으로 이동합니다.

Write(Char[])

현재 스트림에 문자 배열을 쓰고 사용된 Encoding 스트림에 기록되는 특정 문자에 따라 스트림의 현재 위치를 이동합니다.

Write(Char[], Int32, Int32)

문자 배열의 섹션을 현재 스트림에 쓰고 사용된 Encoding 스트림에 기록되는 특정 문자에 따라 스트림의 현재 위치를 앞으로 이동합니다.

Write(Decimal)

현재 스트림에 10진수 값을 쓰고 스트림 위치를 16바이트 앞으로 이동합니다.

Write(Double)

8바이트 부동 소수점 값을 현재 스트림에 쓰고 스트림 위치를 8바이트 앞으로 이동합니다.

Write(Half)

현재 스트림에 2바이트 부동 소수점 값을 쓰고 스트림 위치를 2바이트로 이동합니다.

Write(Int16)

현재 스트림에 부인 2바이트 정수(2바이트)를 쓰고 스트림 위치를 2바이트 앞으로 이동합니다.

Write(Int32)

현재 스트림에 4바이트 부가 정수로 쓰고 스트림 위치를 4바이트 앞으로 이동합니다.

Write(Int64)

현재 스트림에 부가된 8바이트 정수를 쓰고 스트림 위치를 8바이트 앞으로 이동합니다.

Write(ReadOnlySpan<Byte>)

현재 스트림에 바이트 범위를 씁니다.

Write(ReadOnlySpan<Char>)

현재 스트림에 문자 범위를 쓰고 사용된 Encoding 스트림에 기록되는 특정 문자에 따라 스트림의 현재 위치를 진행합니다.

Write(SByte)

서명된 바이트를 현재 스트림에 쓰고 스트림 위치를 1 바이트씩 진행합니다.

Write(Single)

현재 스트림에 4바이트 부동 소수점 값을 쓰고 스트림 위치를 4바이트 앞으로 이동합니다.

Write(String)

BinaryWriter현재 인코딩에서 길이 접두사 문자열을 이 스트림에 쓰고 사용된 인코딩 및 스트림에 기록되는 특정 문자에 따라 스트림의 현재 위치를 진행합니다.

Write(UInt16)

부호 없는 2바이트 정수는 현재 스트림에 쓰고 스트림 위치를 2바이트로 이동합니다.

Write(UInt32)

4바이트 부호 없는 정수는 현재 스트림에 쓰고 스트림 위치를 4바이트 앞으로 이동합니다.

Write(UInt64)

부호 없는 8바이트 정수는 현재 스트림에 쓰고 스트림 위치를 8바이트 앞으로 이동합니다.

Write7BitEncodedInt(Int32)

32비트 정수는 압축된 형식으로 씁니다.

Write7BitEncodedInt64(Int64)

한 번에 숫자 7 비트를 씁니다.

명시적 인터페이스 구현

IDisposable.Dispose()

BinaryWriter 사용하는 관리되지 않는 리소스를 해제하고 필요에 따라 관리되는 리소스를 해제합니다.

확장 메서드

ConfigureAwait(IAsyncDisposable, Boolean)

비동기 삭제 가능 파일에서 반환된 작업에 대한 대기가 수행되는 방법을 구성합니다.

적용 대상

추가 정보