BinaryReader Klasse

Definition

Liest primitive Datentypen als Binäre Werte in einer bestimmten Codierung vor.

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
Vererbung
BinaryReader
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Anwendungseinstellungen in einer Datei gespeichert und abgerufen werden.

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

Hinweise

Die BinaryReader Klasse stellt Methoden bereit, die das Lesen primitiver Datentypen aus einem Datenstrom vereinfachen. Sie können z. B. die ReadBoolean Methode verwenden, um das nächste Byte als booleschen Wert zu lesen und die aktuelle Position im Datenstrom um ein Byte voranzuschreiten. Die Klasse enthält Lesemethoden, die unterschiedliche Datentypen unterstützen.

Wenn Sie eine neue Instanz der BinaryReader Klasse erstellen, geben Sie den datenstrom an, aus dem gelesen werden soll, und geben optional den Codierungstyp an und gibt an, ob der Datenstrom nach dem Löschen des BinaryReader Objekts geöffnet bleiben soll. Wenn Sie keinen Codierungstyp angeben, wird UTF-8 verwendet.

Important

Dieser Typ implementiert die IDisposable Schnittstelle. Nach Abschluss der Verwendung sollten Sie den Typ entweder direkt oder indirekt löschen. Rufen Sie die Methode Dispose in einem try/catch-Block auf, um den Typ direkt zu entsorgen. Verwenden Sie zum indirekten Löschen ein Sprachkonstrukt wie using (in C#) oder Using (in Visual Basic). Weitere Informationen finden Sie im Abschnitt "Verwenden eines Objekts, das IDisposable implementiert" im IDisposable Schnittstellenthema.

Konstruktoren

Name Beschreibung
BinaryReader(Stream, Encoding, Boolean)

Initialisiert eine neue Instanz der BinaryReader Klasse basierend auf der angegebenen Datenstrom- und Zeichencodierung und lässt optional den Datenstrom geöffnet.

BinaryReader(Stream, Encoding)

Initialisiert eine neue Instanz der BinaryReader Klasse basierend auf der angegebenen Datenstrom- und Zeichencodierung.

BinaryReader(Stream)

Initialisiert eine neue Instanz der BinaryReader Klasse basierend auf dem angegebenen Datenstrom und verwendet UTF-8-Codierung.

Eigenschaften

Name Beschreibung
BaseStream

Macht Zugriff auf den zugrunde liegenden Datenstrom der .BinaryReader

Methoden

Name Beschreibung
Close()

Schließt den aktuellen Reader und den zugrunde liegenden Datenstrom.

Dispose()

Gibt alle Ressourcen frei, die von der aktuellen Instanz der BinaryReader Klasse verwendet werden.

Dispose(Boolean)

Gibt die von der BinaryReader Klasse verwendeten nicht verwalteten Ressourcen frei und gibt optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FillBuffer(Int32)

Füllt den internen Puffer mit der angegebenen Anzahl von Bytes, die aus dem Datenstrom gelesen werden.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
PeekChar()

Gibt das nächste verfügbare Zeichen zurück und wechselt nicht zur Byte- oder Zeichenposition.

Read()

Liest Zeichen aus dem zugrunde liegenden Datenstrom und wechselt die aktuelle Position des Datenstroms gemäß dem Encoding verwendeten und dem spezifischen Zeichen, das aus dem Datenstrom gelesen wird.

Read(Byte[], Int32, Int32)

Liest die angegebene Anzahl von Bytes aus dem Datenstrom ab einem angegebenen Punkt im Bytearray.

Read(Char[], Int32, Int32)

Liest die angegebene Anzahl von Zeichen aus dem Datenstrom ab einem angegebenen Punkt im Zeichenarray.

Read(Span<Byte>)

Liest eine Abfolge von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

Read(Span<Char>)

Liest aus dem aktuellen Datenstrom dieselbe Anzahl von Zeichen wie die Länge des bereitgestellten Puffers, schreibt sie in den bereitgestellten Puffer und wechselt die aktuelle Position entsprechend dem Encoding verwendeten und dem spezifischen Zeichen, das aus dem Datenstrom gelesen wird.

Read7BitEncodedInt()

Liest eine 32-Bit-Ganzzahl im komprimierten Format.

ReadBoolean()

Liest einen Boolean Wert aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um ein Byte.

ReadByte()

Liest das nächste Byte aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um ein Byte.

ReadBytes(Int32)

Liest die angegebene Anzahl von Bytes aus dem aktuellen Datenstrom in ein Bytearray und wechselt die aktuelle Position um diese Anzahl von Bytes.

ReadChar()

Liest das nächste Zeichen aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms entsprechend dem Encoding verwendeten und dem spezifischen Zeichen, das aus dem Datenstrom gelesen wird.

ReadChars(Int32)

Liest die angegebene Anzahl von Zeichen aus dem aktuellen Datenstrom, gibt die Daten in einem Zeichenarray zurück und wechselt die aktuelle Position in Übereinstimmung mit dem Encoding verwendeten und dem spezifischen Zeichen, das aus dem Datenstrom gelesen wird.

ReadDecimal()

Liest einen Dezimalwert aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um sechszehn Bytes.

ReadDouble()

Liest einen Gleitkommawert von 8 Byte aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um acht Byte.

ReadInt16()

Liest eine 2-Byte-Ganzzahl aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um zwei Byte.

ReadInt32()

Liest eine mit 4 Byte signierte ganze Zahl aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um vier Byte.

ReadInt64()

Liest eine mit 8 Byte signierte ganze Zahl aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um acht Byte.

ReadSByte()

Liest ein signiertes Byte aus diesem Datenstrom und wechselt die aktuelle Position des Datenstroms um ein Byte.

ReadSingle()

Liest einen Gleitkommawert von 4 Byte aus dem aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms um vier Byte.

ReadString()

Liest eine Zeichenfolge aus dem aktuellen Datenstrom. Die Zeichenfolge wird der Länge vorangestellt, die jeweils als ganze Zahl von sieben Bits codiert ist.

ReadUInt16()

Liest eine 2-Byte-Ganzzahl ohne Vorzeichen aus dem aktuellen Datenstrom mithilfe der Little-Endian-Codierung und wechselt die Position des Datenstroms um zwei Byte.

ReadUInt32()

Liest eine 4-Byte-Ganzzahl ohne Vorzeichen aus dem aktuellen Datenstrom und wechselt die Position des Datenstroms um vier Byte.

ReadUInt64()

Liest eine 8-Byte-Ganzzahl ohne Vorzeichen aus dem aktuellen Datenstrom und wechselt die Position des Datenstroms um acht Byte.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDisposable.Dispose()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt die BaseStream Soweit nicht anders konfiguriert von BinaryReader(Stream, Encoding, Boolean).

Gilt für:

Weitere Informationen