BinaryWriter Klasse

Definition

Schreibt primitive Typen in binärer Form in einen Datenstrom und unterstützt das Schreiben von Zeichenfolgen in einer bestimmten Codierung.

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
Vererbung
BinaryWriter
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 BinaryWriter Klasse stellt Methoden bereit, die das Schreiben von primitiven Datentypen in einen Datenstrom vereinfachen. Sie können z. B. die Write Methode verwenden, um einen booleschen Wert in den Datenstrom als Ein-Byte-Wert zu schreiben. Die Klasse enthält Schreibmethoden, die unterschiedliche Datentypen unterstützen.

Wenn Sie eine neue Instanz der BinaryWriter Klasse erstellen, geben Sie den zu schreibenden Datenstrom an und geben optional den Codierungstyp an, und geben Sie optional an, ob der Datenstrom nach dem Löschen des BinaryWriter 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.

Eine abgeleitete Klasse kann die Methoden dieser Klasse überschreiben, um eindeutige Zeichencodierungen zu ermöglichen.

Konstruktoren

Name Beschreibung
BinaryWriter()

Initialisiert eine neue Instanz der Klasse, die BinaryWriter in einen Datenstrom schreibt.

BinaryWriter(Stream, Encoding, Boolean)

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

BinaryWriter(Stream, Encoding)

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

BinaryWriter(Stream)

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

Felder

Name Beschreibung
Null

Gibt einen BinaryWriter Speicher ohne Sicherungsspeicher an.

OutStream

Enthält den zugrunde liegenden Datenstrom.

Eigenschaften

Name Beschreibung
BaseStream

Ruft den zugrunde liegenden Datenstrom der BinaryWriter.

Methoden

Name Beschreibung
Close()

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

Dispose()

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

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den BinaryWriter verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

DisposeAsync()

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

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Flush()

Löscht alle Puffer für den aktuellen Writer und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben 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)
Seek(Int32, SeekOrigin)

Legt die Position innerhalb des aktuellen Datenstroms fest.

ToString()

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

(Geerbt von Object)
Write(Boolean)

Schreibt einen 1-Byte-Wert Boolean in den aktuellen Datenstrom, wobei 0 steht false und 1 darstellt true.

Write(Byte)

Schreibt ein nicht signiertes Byte in den aktuellen Datenstrom und wechselt die Datenstromposition um ein Byte.

Write(Byte[], Int32, Int32)

Schreibt einen Bereich eines Bytearrays in den aktuellen Datenstrom.

Write(Byte[])

Schreibt ein Bytearray in den zugrunde liegenden Datenstrom.

Write(Char)

Schreibt ein Unicode-Zeichen in den aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms entsprechend der Encoding verwendeten und den spezifischen Zeichen, die in den Datenstrom geschrieben werden.

Write(Char[], Int32, Int32)

Schreibt einen Abschnitt eines Zeichenarrays in den aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms entsprechend der Encoding verwendeten und möglicherweise den spezifischen Zeichen, die in den Datenstrom geschrieben werden.

Write(Char[])

Schreibt ein Zeichenarray in den aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms entsprechend der Encoding verwendeten und den spezifischen Zeichen, die in den Datenstrom geschrieben werden.

Write(Decimal)

Schreibt einen Dezimalwert in den aktuellen Datenstrom und wechselt die Datenstromposition um sechzehn Bytes.

Write(Double)

Schreibt einen Acht-Byte-Gleitkommawert in den aktuellen Datenstrom und wechselt die Datenstromposition um acht Bytes.

Write(Half)

Schreibt einen Gleitkommawert mit zwei Byte in den aktuellen Datenstrom und wechselt die Datenstromposition um zwei Byte.

Write(Int16)

Schreibt eine aus zwei Byte signierte ganze Zahl in den aktuellen Datenstrom und wechselt die Datenstromposition um zwei Byte.

Write(Int32)

Schreibt eine aus vier Byte signierte ganze Zahl in den aktuellen Datenstrom und wechselt die Datenstromposition um vier Byte.

Write(Int64)

Schreibt eine acht bytesignierte ganze Zahl in den aktuellen Datenstrom und wechselt die Datenstromposition um acht Byte.

Write(ReadOnlySpan<Byte>)

Schreibt eine Spanne von Bytes in den aktuellen Datenstrom.

Write(ReadOnlySpan<Char>)

Schreibt eine Spanne von Zeichen in den aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms entsprechend der Encoding verwendeten und möglicherweise den spezifischen Zeichen, die in den Datenstrom geschrieben werden.

Write(SByte)

Schreibt ein signiertes Byte in den aktuellen Datenstrom und wechselt die Datenstromposition um ein Byte.

Write(Single)

Schreibt einen Gleitkommawert mit vier Byte in den aktuellen Datenstrom und wechselt die Datenstromposition um vier Byte.

Write(String)

Schreibt eine längepräfixierte Zeichenfolge in diesen Datenstrom in der aktuellen Codierung des BinaryWriterDatenstroms und wechselt die aktuelle Position des Datenstroms entsprechend der verwendeten Codierung und den spezifischen Zeichen, die in den Datenstrom geschrieben werden.

Write(UInt16)

Schreibt eine ganzzahlige Zahl ohne Vorzeichen in den aktuellen Datenstrom und wechselt die Datenstromposition um zwei Byte.

Write(UInt32)

Schreibt eine ganze Zahl mit vier Byte in den aktuellen Datenstrom und wechselt die Datenstromposition um vier Byte.

Write(UInt64)

Schreibt eine 8-Byte-Ganzzahl ohne Vorzeichen in den aktuellen Datenstrom und wechselt die Datenstromposition um acht Bytes.

Write7BitEncodedInt(Int32)

Schreibt eine 32-Bit-Ganzzahl in einem komprimierten Format.

Write7BitEncodedInt64(Int64)

Schreibt jeweils eine Zahl von 7 Bits aus.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDisposable.Dispose()

Gibt die nicht verwalteten Ressourcen frei, die von den BinaryWriter verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

Erweiterungsmethoden

Name Beschreibung
ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguriert, wie auf die von einem asynchronen Einweg zurückgegebenen Aufgaben gewartet wird.

Gilt für:

Weitere Informationen