BinaryReader Sınıf

Tanım

Temel veri türlerini belirli bir kodlamada ikili değerler olarak okur.

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
Devralma
BinaryReader
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, bir dosyada uygulama ayarlarının nasıl depolanıp alınduğunu gösterir.

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

Açıklamalar

sınıfı, BinaryReader bir akıştan temel veri türlerini okumayı basitleştiren yöntemler sağlar. Örneğin, bir sonraki bayt değerini Boole değeri olarak okumak ve akıştaki geçerli konumu bir bayt ilerletmek için yöntemini kullanabilirsiniz ReadBoolean . sınıfı, farklı veri türlerini destekleyen okuma yöntemleri içerir.

Sınıfının yeni bir örneğini BinaryReader oluşturduğunuzda, okunacak akışı sağlarsınız ve isteğe bağlı olarak kodlama türünü ve nesneyi devre dışı BinaryReader bıraktıktan sonra akışın açık bırakılıp bırakılmayacağını belirtirsiniz. Kodlama türü belirtmezseniz UTF-8 kullanılır.

Önemli

Bu tür arabirimini IDisposable uygular. Türünü kullanmayı bitirdiğinizde, doğrudan veya dolaylı olarak atmalısınız. Türü doğrudan atmak için yöntemini bir try/catch blokta çağırın.Dispose Bunu dolaylı olarak atmak için (C#'ta) veya Using (Visual Basic'te) gibi using bir dil yapısı kullanın. Daha fazla bilgi için arabirim konusunun "IDisposable Uygulayan Bir Nesne Kullanma" bölümüne IDisposable bakın.

Oluşturucular

BinaryReader(Stream)

Belirtilen akışı temel alarak ve UTF-8 kodlamasını kullanarak sınıfının yeni bir örneğini BinaryReader başlatır.

BinaryReader(Stream, Encoding)

Belirtilen akış ve karakter kodlaması BinaryReader temelinde sınıfının yeni bir örneğini başlatır.

BinaryReader(Stream, Encoding, Boolean)

Belirtilen akış ve karakter kodlaması BinaryReader temelinde sınıfının yeni bir örneğini başlatır ve isteğe bağlı olarak akışı açık bırakır.

Özellikler

BaseStream

temel alınan akışına BinaryReadererişimi kullanıma sunar.

Yöntemler

Close()

Geçerli okuyucuyu ve temel alınan akışı kapatır.

Dispose()

BinaryReader sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.

Dispose(Boolean)

sınıfı tarafından BinaryReader kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FillBuffer(Int32)

İç arabelleği, akıştan okunan belirtilen bayt sayısıyla doldurur.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
PeekChar()

Kullanılabilir sonraki karakteri döndürür ve bayt veya karakter konumunu ilerletmez.

Read()

Temel alınan akıştaki karakterleri okur ve kullanılan ve akıştan okunan belirli karaktere uygun Encoding olarak akışın geçerli konumunu ilerletir.

Read(Byte[], Int32, Int32)

Bayt dizisindeki belirtilen noktadan başlayarak akıştan belirtilen bayt sayısını okur.

Read(Char[], Int32, Int32)

Karakter dizisindeki belirtilen noktadan başlayarak akıştan belirtilen sayıda karakteri okur.

Read(Span<Byte>)

Geçerli akıştan bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

Read(Span<Char>)

Geçerli akıştan sağlanan arabelleğin uzunluğuyla aynı sayıda karakteri okur, sağlanan arabelleğe yazar ve kullanılan ve akıştan okunan belirli karaktere göre Encoding geçerli konumu ilerletir.

Read7BitEncodedInt()

Sıkıştırılmış biçimde 32 bitlik bir tamsayıda okur.

Read7BitEncodedInt64()

Bir kerede 7 bitlik bir sayı okur.

ReadBoolean()

Geçerli akıştan bir Boolean değer okur ve akışın geçerli konumunu bir bayt ilerletir.

ReadByte()

Geçerli akıştan sonraki baytını okur ve akışın geçerli konumunu bir bayt ilerletir.

ReadBytes(Int32)

Geçerli akıştan belirtilen bayt sayısını bir bayt dizisine okur ve geçerli konumu bu bayt sayısına kadar ilerletir.

ReadChar()

Geçerli akıştan sonraki karakteri okur ve kullanılan ve akıştan okunan belirli karaktere uygun Encoding olarak akışın geçerli konumunu ilerletir.

ReadChars(Int32)

Geçerli akıştan belirtilen sayıda karakteri okur, bir karakter dizisindeki verileri döndürür ve kullanılan ve akıştan okunan belirli karaktere uygun Encoding olarak geçerli konumu ilerletir.

ReadDecimal()

Geçerli akıştan bir ondalık değeri okur ve akışın geçerli konumunu on altı bayt ilerletir.

ReadDouble()

Geçerli akıştan 8 baytlık kayan nokta değerini okur ve akışın geçerli konumunu sekiz bayt ilerletir.

ReadHalf()

Geçerli akıştan 2 baytlık kayan nokta değerini okur ve akışın geçerli konumunu iki bayt ilerletir.

ReadInt16()

Geçerli akıştan 2 baytlık imzalı bir tamsayı okur ve akışın geçerli konumunu iki bayt ilerletir.

ReadInt32()

Geçerli akıştan 4 bayt imzalı bir tamsayı okur ve akışın geçerli konumunu dört bayt ilerletir.

ReadInt64()

Geçerli akıştan 8 baytlık imzalı tamsayıyı okur ve akışın geçerli konumunu sekiz bayt ilerletir.

ReadSByte()

Bu akıştan imzalı bir bayt okur ve akışın geçerli konumunu bir bayt ilerletir.

ReadSingle()

Geçerli akıştan 4 baytlık kayan nokta değerini okur ve akışın geçerli konumunu dört bayt ilerletir.

ReadString()

Geçerli akıştan bir dize okur. Dizeye bir kerede tamsayı yedi bit olarak kodlanmış uzunluk ön eki eklenir.

ReadUInt16()

Küçük endian kodlama kullanarak geçerli akıştan 2 baytlık işaretsiz bir tamsayı okur ve akışın konumunu iki bayt ilerletir.

ReadUInt32()

Geçerli akıştan 4 baytlık işaretsiz bir tamsayı okur ve akışın konumunu dört bayt ilerletir.

ReadUInt64()

Geçerli akıştan 8 baytlık işaretsiz bir tamsayı okur ve akışın konumunu sekiz bayt ilerletir.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

tarafından BinaryReader(Stream, Encoding, Boolean)aksi yapılandırılmadığı sürece öğesini BaseStream serbest bırakır.

Şunlara uygulanır

Ayrıca bkz.