Freigeben über


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 geöffnet bleiben soll, nachdem das BinaryWriter-Objekt entfernt wurde. Wenn Sie keinen Codierungstyp angeben, wird UTF-8 verwendet.

Wichtig

Dieser Typ implementiert die IDisposable Schnittstelle. Wenn Sie die Verwendung des Typs abgeschlossen haben, sollten Sie ihn entweder direkt oder indirekt verwerfen. Rufen Sie zum direkten Löschen des Typs die Dispose-Methode in einem try/catch-Block auf. 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 Thema zur IDisposable Schnittstelle.

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

Konstruktoren

BinaryWriter()

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

BinaryWriter(Stream)

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

BinaryWriter(Stream, Encoding)

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

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.

Felder

Null

Gibt eine BinaryWriter ohne Sicherungsspeicher an.

OutStream

Enthält den zugrunde liegenden Datenstrom.

Eigenschaften

BaseStream

Ruft den zugrunde liegenden Datenstrom der BinaryWriterab.

Methoden

Close()

Schließt die aktuelle 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 vom BinaryWriter 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-Boolean Wert in den aktuellen Datenstrom, wobei 0 false und 1 darstellt, der truedarstellt.

Write(Byte)

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

Write(Byte[])

Schreibt ein Bytearray in den zugrunde liegenden Datenstrom.

Write(Byte[], Int32, Int32)

Schreibt einen Bereich eines Bytearrays in den aktuellen Datenstrom.

Write(Char)

Schreibt ein Unicode-Zeichen in den aktuellen Datenstrom und wechselt die aktuelle Position des Datenstroms gemäß dem verwendeten Encoding und 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 gemäß dem verwendeten Encoding 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 dem verwendeten Encoding und möglicherweise 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 gemäß dem verwendeten Encoding 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 der BinaryWriterund führt die aktuelle Position des Datenstroms entsprechend der verwendeten Codierung und den spezifischen Zeichen aus, 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

IDisposable.Dispose()

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

Erweiterungsmethoden

ConfigureAwait(IAsyncDisposable, Boolean)

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

Gilt für:

Weitere Informationen