BinaryWriter.Write Methode

Definition

Schreibt einen Wert in den aktuellen Datenstrom.

Überlädt

Name Beschreibung
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(Byte[], Int32, Int32)

Schreibt einen Bereich eines Bytearrays in den aktuellen Datenstrom.

Write(UInt64)

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

Write(UInt32)

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

Write(UInt16)

Schreibt eine ganzzahlige Zahl ohne Vorzeichen in den aktuellen Datenstrom und wechselt die Datenstromposition um zwei 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(Single)

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

Write(SByte)

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

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(ReadOnlySpan<Byte>)

Schreibt eine Spanne von Bytes in den aktuellen Datenstrom.

Write(Int64)

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

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(Int16)

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

Write(Half)

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

Write(Double)

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

Write(Decimal)

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

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(Byte[])

Schreibt ein Bytearray in den zugrunde liegenden Datenstrom.

Write(Byte)

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

Write(Boolean)

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

Write(Int32)

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

Write(Char[], Int32, Int32)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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.

public:
 virtual void Write(cli::array <char> ^ chars, int index, int count);
public virtual void Write(char[] chars, int index, int count);
abstract member Write : char[] * int * int -> unit
override this.Write : char[] * int * int -> unit
Public Overridable Sub Write (chars As Char(), index As Integer, count As Integer)

Parameter

chars
Char[]

Ein Zeichenarray, das die zu schreibenden Daten enthält.

index
Int32

Der Index des ersten Zeichens, aus chars dem gelesen und in den Datenstrom geschrieben werden soll.

count
Int32

Die Anzahl der Zeichen, aus chars der gelesen und in den Datenstrom geschrieben werden soll.

Ausnahmen

Die Pufferlänge minus index ist kleiner als count.

chars ist null.

index oder count ist negativ.

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Beispiele

Das folgende Codebeispiel zeigt, wie Daten mithilfe des Speichers als Sicherungsspeicher gelesen und geschrieben werden.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(
            Path.InvalidPathChars, 0, Path.InvalidPathChars.Length);

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        int arraySize = (int)(memStream.Length - memStream.Position);
        char[] memoryData = new char[arraySize];
        binReader.Read(memoryData, 0, arraySize);
        Console.WriteLine(memoryData);
    }
}
open System.IO

let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)

// Write to memory.
binWriter.Write "Invalid file path characters are: "
binWriter.Write(invalidPathChars, 0, invalidPathChars.Length)

// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)

// Set Position to the beginning of the stream.
memStream.Position <- 0

// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
let arraySize = memStream.Length - memStream.Position |> int
let memoryData = Array.zeroCreate<char> arraySize
binReader.Read(memoryData, 0, arraySize) |> ignore
printfn $"{memoryData}"
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim invalidPathChars() As Char = Path.InvalidPathChars
        Dim memStream As new MemoryStream()
        Dim binWriter As New BinaryWriter(memStream)

        ' Write to memory.
        binWriter.Write("Invalid file path characters are: ")
        binWriter.Write(Path.InvalidPathChars, 0, _
            Path.InvalidPathChars.Length)

        ' Create the reader using the same MemoryStream 
        ' as used with the writer.
        Dim binReader As New BinaryReader(memStream)

        ' Set Position to the beginning of the stream.
        memStream.Position = 0

        ' Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString())
        Dim upperBound As Integer = _
            CInt(memStream.Length - memStream.Position) - 1
        Dim memoryData(upperBound) As Char
        binReader.Read(memoryData, 0, upperBound)
        Console.WriteLine(memoryData)
    
    End Sub
End Class

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Byte[], Int32, Int32)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Schreibt einen Bereich eines Bytearrays in den aktuellen Datenstrom.

public:
 virtual void Write(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual void Write(byte[] buffer, int index, int count);
abstract member Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overridable Sub Write (buffer As Byte(), index As Integer, count As Integer)

Parameter

buffer
Byte[]

Ein Bytearray, das die zu schreibenden Daten enthält.

index
Int32

Der Index des ersten Byte, aus buffer dem gelesen und in den Datenstrom geschrieben werden soll.

count
Int32

Die Anzahl der Bytes, aus buffer der gelesen und in den Datenstrom geschrieben werden soll.

Ausnahmen

Die Pufferlänge minus index ist kleiner als count.

buffer ist null.

index oder count ist negativ.

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Beispiele

Das folgende Codebeispiel zeigt, wie Binärdaten mithilfe des Speichers als Sicherungsspeicher geschrieben werden, und überprüfen Sie dann, ob die Daten richtig geschrieben wurden.

using System;
using System.IO;

namespace BinaryRW
{
    class Program
    {
        static void Main(string[] args)
        {
            const int arrayLength = 1000;
            byte[] dataArray = new byte[arrayLength];
            byte[] verifyArray = new byte[arrayLength];

            new Random().NextBytes(dataArray);

            using (BinaryWriter binWriter = new BinaryWriter(new MemoryStream()))
            {
                Console.WriteLine("Writing the data.");
                binWriter.Write(dataArray, 0, arrayLength);

                using (BinaryReader binReader = new BinaryReader(binWriter.BaseStream))
                {
                    binReader.BaseStream.Position = 0;

                    if (binReader.Read(verifyArray, 0, arrayLength) != arrayLength)
                    {
                        Console.WriteLine("Error writing the data.");
                        return;
                    }
                }
            }

            for (int i = 0; i < arrayLength; i++)
            {
                if (verifyArray[i] != dataArray[i])
                {
                    Console.WriteLine("Error writing the data.");
                    return;
                }
            }

            Console.WriteLine("The data was written and verified.");
        }
    }
}
open System
open System.IO

let arrayLength = 1000
let dataArray = Array.zeroCreate<byte> arrayLength
let verifyArray = Array.zeroCreate<byte> arrayLength

Random().NextBytes dataArray

do
    use binWriter = new BinaryWriter(new MemoryStream())
    printfn "Writing the data."
    binWriter.Write(dataArray, 0, arrayLength)

    use binReader = new BinaryReader(binWriter.BaseStream)
    binReader.BaseStream.Position <- 0

    if binReader.Read(verifyArray, 0, arrayLength) <> arrayLength then
        printfn "Error writing the data."
    else
        for i = 0 to arrayLength - 1 do
            if verifyArray[i] <> dataArray[i] then
                printfn "Error writing the data."
            else
                printfn "The data was written and verified."
Imports System.IO

Module Module1

    Sub Main()
        Const upperBound As Integer = 1000
        Dim dataArray(upperBound) As Byte
        Dim verifyArray(upperBound) As Byte

        Dim randomGenerator As New Random
        randomGenerator.NextBytes(dataArray)

        Using binWriter As New BinaryWriter(New MemoryStream())
            Console.WriteLine("Writing the data.")
            binWriter.Write(dataArray, 0, dataArray.Length)

            Using binReader As New BinaryReader(binWriter.BaseStream)
                binReader.BaseStream.Position = 0

                If binReader.Read(verifyArray, 0, dataArray.Length) <> dataArray.Length Then
                    Console.WriteLine("Error writing the data.")
                    Return
                End If
            End Using
        End Using

        For i As Integer = 0 To upperBound
            If verifyArray(i) <> dataArray(i) Then
                Console.WriteLine("Error writing the data.")
                Return
            End If
        Next i

        Console.WriteLine("The data was written and verified.")
    End Sub

End Module

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(UInt64)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 virtual void Write(System::UInt64 value);
[System.CLSCompliant(false)]
public virtual void Write(ulong value);
[<System.CLSCompliant(false)>]
abstract member Write : uint64 -> unit
override this.Write : uint64 -> unit
Public Overridable Sub Write (value As ULong)

Parameter

value
UInt64

Die acht Byte-ganzzahl ohne Vorzeichen, die geschrieben werden soll.

Attribute

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(UInt32)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 virtual void Write(System::UInt32 value);
[System.CLSCompliant(false)]
public virtual void Write(uint value);
[<System.CLSCompliant(false)>]
abstract member Write : uint32 -> unit
override this.Write : uint32 -> unit
Public Overridable Sub Write (value As UInteger)

Parameter

value
UInt32

Der ganzzahlige Wert mit vier Byte, der geschrieben werden soll.

Attribute

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(UInt16)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 virtual void Write(System::UInt16 value);
[System.CLSCompliant(false)]
public virtual void Write(ushort value);
[<System.CLSCompliant(false)>]
abstract member Write : uint16 -> unit
override this.Write : uint16 -> unit
Public Overridable Sub Write (value As UShort)

Parameter

value
UInt16

Die nicht signierte ganze Zahl mit zwei Byte, die geschrieben werden soll.

Attribute

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(String)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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.

public:
 virtual void Write(System::String ^ value);
public virtual void Write(string value);
abstract member Write : string -> unit
override this.Write : string -> unit
Public Overridable Sub Write (value As String)

Parameter

value
String

Der zu schreibende Wert.

Ausnahmen

Ein E/A-Fehler tritt auf.

value ist null.

Der Datenstrom wird geschlossen.

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

Längepräfix bedeutet, dass diese Methode zuerst die Länge der Zeichenfolge in Bytes schreibt, wenn sie mit der aktuellen Codierung der BinaryWriter Instanz in den Datenstrom codiert ist. Dieser Wert wird als ganze Zahl ohne Vorzeichen geschrieben. Diese Methode schreibt dann so viele Byte in den Datenstrom.

Beispielsweise hat die Zeichenfolge "A" eine Länge von 1, aber wenn sie mit UTF-16 codiert ist; Die Länge beträgt 2 Byte, sodass der im Präfix geschriebene Wert 2 ist und 3 Bytes in den Datenstrom geschrieben werden, einschließlich des Präfixes.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Single)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(float value);
public virtual void Write(float value);
abstract member Write : single -> unit
override this.Write : single -> unit
Public Overridable Sub Write (value As Single)

Parameter

value
Single

Der zu schreibende Gleitkommawert mit vier Byte.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

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

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(SByte)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 virtual void Write(System::SByte value);
[System.CLSCompliant(false)]
public virtual void Write(sbyte value);
[<System.CLSCompliant(false)>]
abstract member Write : sbyte -> unit
override this.Write : sbyte -> unit
Public Overridable Sub Write (value As SByte)

Parameter

value
SByte

Das zu schreibende signierte Byte.

Attribute

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(ReadOnlySpan<Char>)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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.

public:
 virtual void Write(ReadOnlySpan<char> chars);
public virtual void Write(ReadOnlySpan<char> chars);
abstract member Write : ReadOnlySpan<char> -> unit
override this.Write : ReadOnlySpan<char> -> unit
Public Overridable Sub Write (chars As ReadOnlySpan(Of Char))

Parameter

chars
ReadOnlySpan<Char>

Eine Spanne von Zeichen, die geschrieben werden sollen.

Gilt für:

Write(ReadOnlySpan<Byte>)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Schreibt eine Spanne von Bytes in den aktuellen Datenstrom.

public:
 virtual void Write(ReadOnlySpan<System::Byte> buffer);
public virtual void Write(ReadOnlySpan<byte> buffer);
abstract member Write : ReadOnlySpan<byte> -> unit
override this.Write : ReadOnlySpan<byte> -> unit
Public Overridable Sub Write (buffer As ReadOnlySpan(Of Byte))

Parameter

buffer
ReadOnlySpan<Byte>

Die Spanne der zu schreibenden Bytes.

Gilt für:

Write(Int64)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(long value);
public virtual void Write(long value);
abstract member Write : int64 -> unit
override this.Write : int64 -> unit
Public Overridable Sub Write (value As Long)

Parameter

value
Int64

Die acht byte signierte ganze Zahl, die geschrieben werden soll.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Char[])

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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.

public:
 virtual void Write(cli::array <char> ^ chars);
public virtual void Write(char[] chars);
abstract member Write : char[] -> unit
override this.Write : char[] -> unit
Public Overridable Sub Write (chars As Char())

Parameter

chars
Char[]

Ein Zeichenarray, das die zu schreibenden Daten enthält.

Ausnahmen

chars ist null.

Der Datenstrom wird geschlossen.

Ein E/A-Fehler tritt auf.

Beispiele

Das folgende Codebeispiel zeigt, wie Daten mithilfe des Speichers als Sicherungsspeicher gelesen und geschrieben werden.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(Path.InvalidPathChars);

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        Console.WriteLine(binReader.ReadChars(
            (int)(memStream.Length - memStream.Position)));
    }
}
open System.IO

let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)

// Write to memory.
binWriter.Write "Invalid file path characters are: "
binWriter.Write invalidPathChars

// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)

// Set Position to the beginning of the stream.
memStream.Position <- 0

// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
printfn $"{binReader.ReadChars(int (memStream.Length - memStream.Position))}"
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim invalidPathChars() As Char = Path.InvalidPathChars
        Dim memStream As new MemoryStream()
        Dim binWriter As New BinaryWriter(memStream)

        ' Write to memory.
        binWriter.Write("Invalid file path characters are: ")
        binWriter.Write(Path.InvalidPathChars)

        ' Create the reader using the same MemoryStream 
        ' as used with the writer.
        Dim binReader As New BinaryReader(memStream)

        ' Set Position to the beginning of the stream.
        memStream.Position = 0

        ' Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString())
        Console.WriteLine(binReader.ReadChars( _
            CInt(memStream.Length - memStream.Position)))
    
    End Sub
End Class

Hinweise

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Um dies zu tun... Sehen Sie sich das Beispiel in diesem Thema an...
Erstellen Sie eine Textdatei. Vorgehensweise: Schreiben von Text in eine Datei
In eine Textdatei schreiben Vorgehensweise: Schreiben von Text in eine Datei
Aus einer Textdatei lesen. Vorgehensweise: Lesen von Text aus einer Datei
Anfügen von Text an eine Datei. Vorgehensweise: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText
Ruft die Größe einer Datei ab. FileInfo.Length
Ruft die Attribute einer Datei ab. File.GetAttributes
Legen Sie die Attribute einer Datei fest. File.SetAttributes
Ermitteln Sie, ob eine Datei vorhanden ist. File.Exists
Aus einer Binärdatei lesen. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei
Schreiben in eine Binärdatei. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei

Weitere Informationen

Gilt für:

Write(Int16)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(short value);
public virtual void Write(short value);
abstract member Write : int16 -> unit
override this.Write : int16 -> unit
Public Overridable Sub Write (value As Short)

Parameter

value
Int16

Die mit zwei Byte signierte ganze Zahl, die geschrieben werden soll.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Um dies zu tun... Sehen Sie sich das Beispiel in diesem Thema an...
Erstellen Sie eine Textdatei. Vorgehensweise: Schreiben von Text in eine Datei
In eine Textdatei schreiben Vorgehensweise: Schreiben von Text in eine Datei
Aus einer Textdatei lesen. Vorgehensweise: Lesen von Text aus einer Datei
Anfügen von Text an eine Datei. Vorgehensweise: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText
Ruft die Größe einer Datei ab. FileInfo.Length
Ruft die Attribute einer Datei ab. File.GetAttributes
Legen Sie die Attribute einer Datei fest. File.SetAttributes
Ermitteln Sie, ob eine Datei vorhanden ist. File.Exists
Aus einer Binärdatei lesen. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei
Schreiben in eine Binärdatei. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei

Weitere Informationen

Gilt für:

Write(Half)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(Half value);
public virtual void Write(Half value);
abstract member Write : Half -> unit
override this.Write : Half -> unit
Public Overridable Sub Write (value As Half)

Parameter

value
Half

Der zu schreibende Gleitkommawert mit zwei Byte.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Daten mithilfe der Double Klassen BinaryReader und der Klasse im Arbeitsspeicher gelesen und in den BinaryWriter Arbeitsspeicher geschrieben MemoryStream werden. MemoryStream liest und schreibt Byte nur Daten.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i;
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double[] dataArray = new double[arrayLength];
        for(i = 0; i < arrayLength; i++)
        {
            dataArray[i] = 100.1 * randomGenerator.NextDouble();
        }

        using(BinaryWriter binWriter =
            new BinaryWriter(new MemoryStream()))
        {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0; i < arrayLength; i++)
            {
                binWriter.Write(dataArray[i]);
            }

            // Create a reader using the stream from the writer.
            using(BinaryReader binReader =
                new BinaryReader(binWriter.BaseStream))
            {
                try
                {
                    // Return to the beginning of the stream.
                    binReader.BaseStream.Position = 0;

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0; i < arrayLength; i++)
                    {
                        if(binReader.ReadDouble() != dataArray[i])
                        {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    }
                    Console.WriteLine("The data was written " +
                        "and verified.");
                }
                catch(EndOfStreamException e)
                {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().Name);
                }
            }
        }
    }
}
open System
open System.IO

let arrayLength = 1000

// Create random data to write to the stream.
let randomGenerator = Random()
let dataArray = 
    Array.init arrayLength (fun _ -> 100.1 * randomGenerator.NextDouble())
do
    use binWriter = new BinaryWriter(new MemoryStream())
    // Write the data to the stream.
    printfn $"Writing data to the stream."
    for num in dataArray do
        binWriter.Write num

    // Create a reader using the stream from the writer.
    use binReader = new BinaryReader(binWriter.BaseStream)
    try
        // Return to the beginning of the stream.
        binReader.BaseStream.Position <- 0

        // Read and verify the data.
        printfn "Verifying the written data."
        for num in dataArray do
            if binReader.ReadDouble() <> num then
                printfn "Error writing data."
        printfn "The data was written and verified."
    with :? EndOfStreamException as e ->
        printfn $"Error writing data: {e.GetType().Name}."
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim i As Integer
        Const upperBound As Integer = 1000

        ' Create random data to write to the stream.
        Dim dataArray(upperBound) As Double
        Dim randomGenerator As New Random()
        For i = 0 To upperBound
            dataArray(i) = 100.1 * randomGenerator.NextDouble()
        Next i

        Dim binWriter As New BinaryWriter(New MemoryStream())
        Try

            ' Write data to the stream.
            Console.WriteLine("Writing data to the stream.")
            
            For i = 0 To upperBound
                binWriter.Write(dataArray(i))
            Next i

            ' Create a reader using the stream from the writer.
            Dim binReader As New BinaryReader(binWriter.BaseStream)

            ' Return to the beginning of the stream.
            binReader.BaseStream.Position = 0

            ' Read and verify the data.
            Try
                Console.WriteLine("Verifying the written data.")
                For i = 0 To upperBound
                    If binReader.ReadDouble() <> dataArray(i) Then
                        Console.WriteLine("Error writing data.")
                        Exit For
                    End If
                Next i
                Console.WriteLine("The data was written and verified.")
            Catch ex As EndOfStreamException
                Console.WriteLine("Error writing data: {0}.", _
                    ex.GetType().Name)
            End Try
        Finally
            binWriter.Close()
        End Try

    End Sub
End Class

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Double)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(double value);
public virtual void Write(double value);
abstract member Write : double -> unit
override this.Write : double -> unit
Public Overridable Sub Write (value As Double)

Parameter

value
Double

Der Wert für acht Byte-Gleitkommapunkte, der geschrieben werden soll.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Daten mithilfe der Double Klassen BinaryReader und der Klasse im Arbeitsspeicher gelesen und in den BinaryWriter Arbeitsspeicher geschrieben MemoryStream werden. MemoryStream liest und schreibt Byte nur Daten.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i;
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double[] dataArray = new double[arrayLength];
        for(i = 0; i < arrayLength; i++)
        {
            dataArray[i] = 100.1 * randomGenerator.NextDouble();
        }

        using(BinaryWriter binWriter =
            new BinaryWriter(new MemoryStream()))
        {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0; i < arrayLength; i++)
            {
                binWriter.Write(dataArray[i]);
            }

            // Create a reader using the stream from the writer.
            using(BinaryReader binReader =
                new BinaryReader(binWriter.BaseStream))
            {
                try
                {
                    // Return to the beginning of the stream.
                    binReader.BaseStream.Position = 0;

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0; i < arrayLength; i++)
                    {
                        if(binReader.ReadDouble() != dataArray[i])
                        {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    }
                    Console.WriteLine("The data was written " +
                        "and verified.");
                }
                catch(EndOfStreamException e)
                {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().Name);
                }
            }
        }
    }
}
open System
open System.IO

let arrayLength = 1000

// Create random data to write to the stream.
let randomGenerator = Random()
let dataArray = 
    Array.init arrayLength (fun _ -> 100.1 * randomGenerator.NextDouble())
do
    use binWriter = new BinaryWriter(new MemoryStream())
    // Write the data to the stream.
    printfn $"Writing data to the stream."
    for num in dataArray do
        binWriter.Write num

    // Create a reader using the stream from the writer.
    use binReader = new BinaryReader(binWriter.BaseStream)
    try
        // Return to the beginning of the stream.
        binReader.BaseStream.Position <- 0

        // Read and verify the data.
        printfn "Verifying the written data."
        for num in dataArray do
            if binReader.ReadDouble() <> num then
                printfn "Error writing data."
        printfn "The data was written and verified."
    with :? EndOfStreamException as e ->
        printfn $"Error writing data: {e.GetType().Name}."
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim i As Integer
        Const upperBound As Integer = 1000

        ' Create random data to write to the stream.
        Dim dataArray(upperBound) As Double
        Dim randomGenerator As New Random()
        For i = 0 To upperBound
            dataArray(i) = 100.1 * randomGenerator.NextDouble()
        Next i

        Dim binWriter As New BinaryWriter(New MemoryStream())
        Try

            ' Write data to the stream.
            Console.WriteLine("Writing data to the stream.")
            
            For i = 0 To upperBound
                binWriter.Write(dataArray(i))
            Next i

            ' Create a reader using the stream from the writer.
            Dim binReader As New BinaryReader(binWriter.BaseStream)

            ' Return to the beginning of the stream.
            binReader.BaseStream.Position = 0

            ' Read and verify the data.
            Try
                Console.WriteLine("Verifying the written data.")
                For i = 0 To upperBound
                    If binReader.ReadDouble() <> dataArray(i) Then
                        Console.WriteLine("Error writing data.")
                        Exit For
                    End If
                Next i
                Console.WriteLine("The data was written and verified.")
            Catch ex As EndOfStreamException
                Console.WriteLine("Error writing data: {0}.", _
                    ex.GetType().Name)
            End Try
        Finally
            binWriter.Close()
        End Try

    End Sub
End Class

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Decimal)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(System::Decimal value);
public virtual void Write(decimal value);
abstract member Write : decimal -> unit
override this.Write : decimal -> unit
Public Overridable Sub Write (value As Decimal)

Parameter

value
Decimal

Der zu schreibende Dezimalwert.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Hinweise

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Um dies zu tun... Sehen Sie sich das Beispiel in diesem Thema an...
Erstellen Sie eine Textdatei. Vorgehensweise: Schreiben von Text in eine Datei
In eine Textdatei schreiben Vorgehensweise: Schreiben von Text in eine Datei
Aus einer Textdatei lesen. Vorgehensweise: Lesen von Text aus einer Datei
Anfügen von Text an eine Datei. Vorgehensweise: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText
Ruft die Größe einer Datei ab. FileInfo.Length
Ruft die Attribute einer Datei ab. File.GetAttributes
Legen Sie die Attribute einer Datei fest. File.SetAttributes
Ermitteln Sie, ob eine Datei vorhanden ist. File.Exists
Aus einer Binärdatei lesen. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei
Schreiben in eine Binärdatei. Vorgehensweise: Lesen und Schreiben in eine neu erstellte Datendatei

Weitere Informationen

Gilt für:

Write(Char)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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.

public:
 virtual void Write(char ch);
public virtual void Write(char ch);
abstract member Write : char -> unit
override this.Write : char -> unit
Public Overridable Sub Write (ch As Char)

Parameter

ch
Char

Das nicht surrogate Unicode-Zeichen, das geschrieben werden soll.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

ch ist ein einzelnes Ersatzzeichen.

Beispiele

Das folgende Codebeispiel zeigt, wie Daten mithilfe des Speichers als Sicherungsspeicher gelesen und geschrieben werden.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i = 0;
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        for(i = 0; i < invalidPathChars.Length; i++)
        {
            binWriter.Write(invalidPathChars[i]);
        }

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        char[] memoryData =
            new char[memStream.Length - memStream.Position];
        for(i = 0; i < memoryData.Length; i++)
        {
            memoryData[i] = binReader.ReadChar();
        }
        Console.WriteLine(memoryData);
    }
}
open System.IO

let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)

// Write to memory.
binWriter.Write "Invalid file path characters are: "
for i = 0 to invalidPathChars.Length - 1 do
    binWriter.Write invalidPathChars[i]

// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)

// Set Position to the beginning of the stream.
memStream.Position <- 0

// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
let memoryData = Array.zeroCreate<char> (int (memStream.Length - memStream.Position))
for i = 0 to memoryData.Length - 1 do
    memoryData[i] <- binReader.ReadChar()
printfn $"{memoryData}"
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim i As Integer = 0
        Dim invalidPathChars() As Char = Path.InvalidPathChars
        Dim memStream As new MemoryStream()
        Dim binWriter As New BinaryWriter(memStream)

        ' Write to memory.
        binWriter.Write("Invalid file path characters are: ")
        For i = 0 To invalidPathChars.Length - 1
            binWriter.Write(invalidPathChars(i))
        Next i

        ' Create the reader using the same MemoryStream 
        ' as used with the writer.
        Dim binReader As New BinaryReader(memStream)

        ' Set Position to the beginning of the stream.
        memStream.Position = 0

        ' Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString())
        Dim memoryData( _
            CInt(memStream.Length - memStream.Position) - 1) As Char
        For i = 0 To memoryData.Length - 1
            memoryData(i) = binReader.ReadChar()
        Next i
        Console.WriteLine(memoryData)
    
    End Sub
End Class

Hinweise

Aufgrund von Datenformatierungskonflikten wird die Verwendung dieser Methode mit den folgenden Codierungen nicht empfohlen:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Unicode-Ersatzzeichen müssen als Paare im selben Aufruf und nicht einzeln geschrieben werden. Wenn Sie Unterstützung für Ersatzpaare in Ihrer Anwendung benötigen, sollten Sie ein Zeichenarray und die Write Methodenüberladung verwenden.

Weitere Informationen

Gilt für:

Write(Byte[])

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

Schreibt ein Bytearray in den zugrunde liegenden Datenstrom.

public:
 virtual void Write(cli::array <System::Byte> ^ buffer);
public virtual void Write(byte[] buffer);
abstract member Write : byte[] -> unit
override this.Write : byte[] -> unit
Public Overridable Sub Write (buffer As Byte())

Parameter

buffer
Byte[]

Ein Bytearray, das die zu schreibenden Daten enthält.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

buffer ist null.

Beispiele

Das folgende Codebeispiel zeigt, wie Binärdaten mithilfe des Speichers als Sicherungsspeicher geschrieben werden, und überprüfen Sie dann, ob die Daten richtig geschrieben wurden.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        byte[] dataArray = new byte[arrayLength];
        new Random().NextBytes(dataArray);

        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());

        // Write the data to the stream.
        Console.WriteLine("Writing the data.");
        binWriter.Write(dataArray);

        // Create the reader using the stream from the writer.
        BinaryReader binReader =
            new BinaryReader(binWriter.BaseStream);

        // Set Position to the beginning of the stream.
        binReader.BaseStream.Position = 0;

        // Read and verify the data.
        byte[] verifyArray = binReader.ReadBytes(arrayLength);
        if(verifyArray.Length != arrayLength)
        {
            Console.WriteLine("Error writing the data.");
            return;
        }
        for(int i = 0; i < arrayLength; i++)
        {
            if(verifyArray[i] != dataArray[i])
            {
                Console.WriteLine("Error writing the data.");
                return;
            }
        }
        Console.WriteLine("The data was written and verified.");
    }
}
open System
open System.IO

let arrayLength = 1000

// Create random data to write to the stream.
let dataArray = Array.zeroCreate<byte> arrayLength
Random().NextBytes dataArray

let binWriter = new BinaryWriter(new MemoryStream())

// Write the data to the stream.ch
printfn "Writing the data."
binWriter.Write dataArray

// Create the reader using the stream from the writer.
let binReader = new BinaryReader(binWriter.BaseStream)

// Set Position to the beginning of the stream.
binReader.BaseStream.Position <- 0

// Read and verify the data.
let verifyArray = binReader.ReadBytes arrayLength
if verifyArray.Length <> arrayLength then
    printfn "Error writing the data."
else
    let mutable failed = false
    for i = 0 to arrayLength - 1 do
        if verifyArray[i] <> dataArray[i] then
            printfn "Error writing the data."
            failed <- true
    if not failed then
        printfn "The data was written and verified."
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Const upperBound As Integer = 1000

        ' Create random data to write to the stream.
        Dim dataArray(upperBound) As Byte
        Dim randomGenerator As New Random
        randomGenerator.NextBytes(dataArray)

        Dim binWriter As New BinaryWriter(New MemoryStream())

        ' Write the data to the stream.
        Console.WriteLine("Writing the data.")
        binWriter.Write(dataArray)

        ' Create the reader using the stream from the writer.
        Dim binReader As New BinaryReader(binWriter.BaseStream)

        ' Set the stream position to the beginning of the stream.
        binReader.BaseStream.Position = 0

        ' Read and verify the data.
        Dim verifyArray() As Byte = _
            binReader.ReadBytes(dataArray.Length)
        If verifyArray.Length <> dataArray.Length Then
            Console.WriteLine("Error writing the data.")
            Return
        End If
        For i As Integer = 0 To upperBound
            If verifyArray(i) <> dataArray(i) Then
                Console.WriteLine("Error writing the data.")
                Return
            End If
        Next i
        Console.WriteLine("The data was written and verified.")
    
    End Sub
End Class

Hinweise

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Byte)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(System::Byte value);
public virtual void Write(byte value);
abstract member Write : byte -> unit
override this.Write : byte -> unit
Public Overridable Sub Write (value As Byte)

Parameter

value
Byte

Das nicht signierte Byte, das geschrieben werden soll.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

Beispiele

Das folgende Codebeispiel zeigt, wie Binärdaten mithilfe des Speichers als Sicherungsspeicher geschrieben werden, und überprüfen Sie dann, ob die Daten richtig geschrieben wurden.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i = 0;

        // Create random data to write to the stream.
        byte[] writeArray = new byte[1000];
        new Random().NextBytes(writeArray);

        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
        BinaryReader binReader =
            new BinaryReader(binWriter.BaseStream);

        try
        {
            // Write the data to the stream.
            Console.WriteLine("Writing the data.");
            for(i = 0; i < writeArray.Length; i++)
            {
                binWriter.Write(writeArray[i]);
            }

            // Set the stream position to the beginning of the stream.
            binReader.BaseStream.Position = 0;

            // Read and verify the data from the stream.
            for(i = 0; i < writeArray.Length; i++)
            {
                if(binReader.ReadByte() != writeArray[i])
                {
                    Console.WriteLine("Error writing the data.");
                    return;
                }
            }
            Console.WriteLine("The data was written and verified.");
        }

        // Catch the EndOfStreamException and write an error message.
        catch(EndOfStreamException e)
        {
            Console.WriteLine("Error writing the data.\n{0}",
                e.GetType().Name);
        }
    }
}
open System
open System.IO

// Create random data to write to the stream.
let writeArray = Array.zeroCreate<byte> 1000
Random().NextBytes writeArray

let binWriter = new BinaryWriter(new MemoryStream())
let binReader = new BinaryReader(binWriter.BaseStream)

try
    // Write the data to the stream.
    printfn "Writing the data."
    for i = 0 to writeArray.Length - 1 do
        binWriter.Write writeArray[i]

    // Set the stream position to the beginning of the stream.
    binReader.BaseStream.Position <- 0

    let mutable failed = false
    // Read and verify the data from the stream.
    for i = 0 to writeArray.Length - 1 do
        if binReader.ReadByte() <> writeArray[i] then
            printfn "Error writing the data."
            failed <- true
    if not failed then
        printfn "The data was written and verified."

// Catch the EndOfStreamException and write an error message.
with :? EndOfStreamException as e ->
    printfn $"Error writing the data.\n{e.GetType().Name}"
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim i As Integer = 0

        ' Create random data to write to the stream.
        Dim writeArray(1000) As Byte
        Dim randomGenerator As New Random()
        randomGenerator.NextBytes(writeArray)

        Dim binWriter As New BinaryWriter(New MemoryStream())
        Dim binReader As New BinaryReader(binWriter.BaseStream)

        Try
        
            ' Write the data to the stream.
            Console.WriteLine("Writing the data.")
            For i = 0 To writeArray.Length - 1
                binWriter.Write(writeArray(i))
            Next i

            ' Set the stream position to the beginning of the stream.
            binReader.BaseStream.Position = 0

            ' Read and verify the data from the stream.
            For i = 0 To writeArray.Length - 1
                If binReader.ReadByte() <> writeArray(i) Then
                    Console.WriteLine("Error writing the data.")
                    Return
                End If
            Next i
            Console.WriteLine("The data was written and verified.")

        ' Catch the EndOfStreamException and write an error message.
        Catch ex As EndOfStreamException
            Console.WriteLine("Error writing the data: {0}", _
                ex.GetType().Name)
        End Try
    
    End Sub
End Class

Hinweise

Aufgrund von Datenformatierungskonflikten wird die Verwendung dieser Methode mit den folgenden Codierungen nicht empfohlen:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Boolean)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(bool value);
public virtual void Write(bool value);
abstract member Write : bool -> unit
override this.Write : bool -> unit
Public Overridable Sub Write (value As Boolean)

Parameter

value
Boolean

Der Boolean zu schreibende Wert (0 oder 1).

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

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

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für:

Write(Int32)

Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs
Quelle:
BinaryWriter.cs

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

public:
 virtual void Write(int value);
public virtual void Write(int value);
abstract member Write : int -> unit
override this.Write : int -> unit
Public Overridable Sub Write (value As Integer)

Parameter

value
Int32

Der zu schreibende ganzzahlige 4-Byte-Wert.

Ausnahmen

Ein E/A-Fehler tritt auf.

Der Datenstrom wird geschlossen.

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

BinaryWriter speichert diesen Datentyp im kleinen Endian-Format.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Weitere Informationen

Gilt für: