다음을 통해 공유


BinaryReader 클래스

정의

기본 데이터 형식을 특정 인코딩의 이진 값으로 읽습니다.

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

예제

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

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

설명

클래스는 BinaryReader 스트림에서 기본 데이터 형식 읽기를 간소화하는 메서드를 제공합니다. 예를 들어 메서드를 ReadBoolean 사용하여 다음 바이트를 부울 값으로 읽고 스트림의 현재 위치를 1 바이트만큼 진행할 수 있습니다. 클래스에는 다양한 데이터 형식을 지원하는 읽기 메서드가 포함됩니다.

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

중요

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

생성자

BinaryReader(Stream)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream, Encoding, Boolean)

지정된 스트림과 문자 인코딩을 기반으로 하는 BinaryReader 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다.

속성

BaseStream

BinaryReader의 내부 스트림에 대한 액세스를 노출합니다.

메서드

Close()

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

Dispose()

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

Dispose(Boolean)

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

Equals(Object)

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

(다음에서 상속됨 Object)
FillBuffer(Int32)

스트림에서 읽은 지정된 바이트 수로 내부 버퍼를 채웁니다.

GetHashCode()

기본 해시 함수로 작동합니다.

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

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

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

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

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

사용할 수 있는 다음 문자를 반환하고 바이트 또는 문자 위치를 앞으로 이동하지 않습니다.

Read()

내부 스트림에서 문자를 읽고 사용된 Encoding과 스트림에서 읽어오는 특정 문자의 길이만큼 스트림의 현재 위치를 앞으로 이동합니다.

Read(Byte[], Int32, Int32)

바이트 배열의 지정된 지점부터 스트림에서 지정된 바이트 수만큼 읽습니다.

Read(Char[], Int32, Int32)

문자 배열의 지정된 지점부터 스트림에서 지정된 문자 수만큼 읽습니다.

Read(Span<Byte>)

현재 스트림에서 바이트 시퀀스를 읽고 읽은 바이트 수만큼 스트림에서 위치를 앞으로 이동합니다.

Read(Span<Char>)

현재 스트림에서 제공된 버퍼의 길이와 동일한 문자 수만큼 읽어 제공된 버퍼에 쓰고 사용된 Encoding과 스트림에서 읽어 오는 특정 문자의 길이만큼 현재 위치를 앞으로 이동합니다.

Read7BitEncodedInt()

압축 형식의 32비트 정수를 읽습니다.

Read7BitEncodedInt64()

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

ReadBoolean()

현재 스트림에서 Boolean 값을 읽고 스트림의 현재 위치를 1바이트 앞으로 이동합니다.

ReadByte()

현재 스트림에서 다음 바이트를 읽고 스트림의 현재 위치를 1바이트 앞으로 이동합니다.

ReadBytes(Int32)

현재 스트림에서 지정된 바이트 수만큼 바이트 배열로 읽어 오고 현재 위치를 해당 바이트 수만큼 앞으로 이동합니다.

ReadChar()

현재 스트림에서 다음 문자를 읽고 사용된 Encoding과 스트림에서 읽어오는 특정 문자의 길이만큼 스트림의 현재 위치를 앞으로 이동합니다.

ReadChars(Int32)

현재 스트림에서 지정된 문자 수만큼 읽어 문자 배열로 데이터를 반환하고, 사용된 Encoding과 스트림에서 읽어 오는 특정 문자의 길이만큼 현재 위치를 앞으로 이동합니다.

ReadDecimal()

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

ReadDouble()

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

ReadHalf()

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

ReadInt16()

현재 스트림에서 부호 있는 2바이트 정수를 읽고 스트림의 현재 위치를 2바이트 앞으로 이동합니다.

ReadInt32()

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

ReadInt64()

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

ReadSByte()

현재 스트림에서 부호 있는 바이트를 읽고 스트림의 현재 위치를 1바이트 앞으로 이동합니다.

ReadSingle()

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

ReadString()

현재 스트림에서 문자열을 읽습니다. 한 번에 7비트 정수로 인코드된 길이는 해당 문자열의 접두사로 붙습니다.

ReadUInt16()

little-endian 인코딩을 사용하여 현재 스트림에서 부호 없는 2바이트 정수를 읽고 스트림의 위치를 2바이트 앞으로 이동합니다.

ReadUInt32()

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

ReadUInt64()

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

ToString()

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

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

에서 구성하지 않는 한 을 BinaryReader(Stream, Encoding, Boolean)해제합니다BaseStream.

적용 대상

추가 정보