BinaryWriter.Write Methode

Definitie

Hiermee schrijft u een waarde naar de huidige stroom.

Overloads

Name Description
Write(Char[], Int32, Int32)

Hiermee schrijft u een sectie van een tekenmatrix naar de huidige stroom en gaat u naar de huidige positie van de stroom overeenkomstig de Encoding gebruikte en mogelijk de specifieke tekens die naar de stream worden geschreven.

Write(Byte[], Int32, Int32)

Hiermee schrijft u een regio van een bytematrix naar de huidige stroom.

Write(UInt64)

Hiermee schrijft u een niet-ondertekend geheel getal van acht bytes naar de huidige stroom en wordt de positie van de stream met acht bytes verplaatst.

Write(UInt32)

Hiermee schrijft u een niet-ondertekend geheel getal van vier bytes naar de huidige stroom en wordt de positie van de stream met vier bytes verplaatst.

Write(UInt16)

Hiermee schrijft u een niet-ondertekend geheel getal van twee bytes naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

Write(String)

Hiermee schrijft u een tekenreeks met een lengtevoorvoegsel naar deze stroom in de huidige codering van de BinaryWriterstroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de gebruikte codering en de specifieke tekens die naar de stroom worden geschreven.

Write(Single)

Hiermee schrijft u een drijvende-kommawaarde van vier bytes naar de huidige stroom en wordt de positie van de stroom met vier bytes verplaatst.

Write(SByte)

Hiermee schrijft u een ondertekende byte naar de huidige stroom en wordt de positie van de stream met één byte vooruit gezet.

Write(ReadOnlySpan<Char>)

Hiermee schrijft u een reeks tekens naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en mogelijk de specifieke tekens die naar de stream worden geschreven.

Write(ReadOnlySpan<Byte>)

Hiermee schrijft u een bereik van bytes naar de huidige stroom.

Write(Int64)

Hiermee schrijft u een met acht byte ondertekend geheel getal naar de huidige stroom en wordt de positie van de stream met acht bytes verplaatst.

Write(Char[])

Hiermee schrijft u een tekenmatrix naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en de specifieke tekens die naar de stream worden geschreven.

Write(Int16)

Hiermee schrijft u een geheel getal met twee bytetekens naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

Write(Half)

Hiermee schrijft u een drijvende-kommawaarde van twee bytes naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

Write(Double)

Hiermee schrijft u een drijvende-kommawaarde van acht bytes naar de huidige stroom en wordt de positie van de stroom met acht bytes verplaatst.

Write(Decimal)

Hiermee schrijft u een decimale waarde naar de huidige stroom en wordt de positie van de stroom met zestien bytes verplaatst.

Write(Char)

Hiermee schrijft u een Unicode-teken naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en de specifieke tekens die naar de stream worden geschreven.

Write(Byte[])

Hiermee schrijft u een bytematrix naar de onderliggende stroom.

Write(Byte)

Hiermee schrijft u een niet-ondertekende byte naar de huidige stroom en wordt de positie van de stream met één byte vooruitgezet.

Write(Boolean)

Hiermee schrijft u een een-bytewaarde Boolean naar de huidige stroom, met 0 die vertegenwoordigt false en 1.true

Write(Int32)

Hiermee schrijft u een geheel getal met vier bytetekens naar de huidige stroom en wordt de positie van de stream met vier bytes verplaatst.

Write(Char[], Int32, Int32)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een sectie van een tekenmatrix naar de huidige stroom en gaat u naar de huidige positie van de stroom overeenkomstig de Encoding gebruikte en mogelijk de specifieke tekens die naar de stream worden geschreven.

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)

Parameters

chars
Char[]

Een tekenmatrix die de gegevens bevat die moeten worden geschreven.

index
Int32

De index van het eerste teken waaruit chars moet worden gelezen en naar de stream moet worden geschreven.

count
Int32

Het aantal tekens waaruit chars moet worden gelezen en naar de stream moet worden geschreven.

Uitzonderingen

De bufferlengte min index is kleiner dan count.

chars is null.

index of count is negatief.

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens kunt lezen en schrijven met behulp van geheugen als back-uparchief.

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Byte[], Int32, Int32)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een regio van een bytematrix naar de huidige stroom.

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)

Parameters

buffer
Byte[]

Een bytematrix die de gegevens bevat die moeten worden geschreven.

index
Int32

De index van de eerste byte waaruit buffer moet worden gelezen en naar de stream moet worden geschreven.

count
Int32

Het aantal bytes waaruit moet worden gelezen buffer en naar de stream moet worden geschreven.

Uitzonderingen

De bufferlengte min index is kleiner dan count.

buffer is null.

index of count is negatief.

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u binaire gegevens schrijft met behulp van geheugen als back-upopslag en vervolgens controleert of de gegevens correct zijn geschreven.

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(UInt64)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Belangrijk

Deze API is niet CLS-conform.

Hiermee schrijft u een niet-ondertekend geheel getal van acht bytes naar de huidige stroom en wordt de positie van de stream met acht bytes verplaatst.

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)

Parameters

value
UInt64

Het niet-ondertekende gehele getal met acht bytes dat moet worden geschreven.

Kenmerken

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(UInt32)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Belangrijk

Deze API is niet CLS-conform.

Hiermee schrijft u een niet-ondertekend geheel getal van vier bytes naar de huidige stroom en wordt de positie van de stream met vier bytes verplaatst.

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)

Parameters

value
UInt32

Het niet-ondertekende gehele getal met vier bytes dat moet worden geschreven.

Kenmerken

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(UInt16)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Belangrijk

Deze API is niet CLS-conform.

Hiermee schrijft u een niet-ondertekend geheel getal van twee bytes naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

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)

Parameters

value
UInt16

Het niet-ondertekende gehele getal van twee bytes dat moet worden geschreven.

Kenmerken

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(String)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een tekenreeks met een lengtevoorvoegsel naar deze stroom in de huidige codering van de BinaryWriterstroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de gebruikte codering en de specifieke tekens die naar de stroom worden geschreven.

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)

Parameters

value
String

De waarde die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

value is null.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u toepassingsinstellingen in een bestand opslaat en ophaalt.

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

Opmerkingen

Lengte voorafgegaan betekent dat deze methode eerst de lengte van de tekenreeks schrijft, in bytes, wanneer deze is gecodeerd met de huidige codering van het BinaryWriter exemplaar naar de stream. Deze waarde wordt geschreven als een geheel getal zonder teken. Met deze methode worden vervolgens zoveel bytes naar de stream geschreven.

De tekenreeks A heeft bijvoorbeeld een lengte van 1, maar wanneer deze is gecodeerd met UTF-16; de lengte is 2 bytes, dus de waarde die in het voorvoegsel is geschreven, is 2 en 3 bytes worden naar de stream geschreven, inclusief het voorvoegsel.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Single)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een drijvende-kommawaarde van vier bytes naar de huidige stroom en wordt de positie van de stroom met vier bytes verplaatst.

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)

Parameters

value
Single

De drijvende-kommawaarde van vier bytes die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u toepassingsinstellingen in een bestand opslaat en ophaalt.

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

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(SByte)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Belangrijk

Deze API is niet CLS-conform.

Hiermee schrijft u een ondertekende byte naar de huidige stroom en wordt de positie van de stream met één byte vooruit gezet.

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)

Parameters

value
SByte

De ondertekende byte die moet worden geschreven.

Kenmerken

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(ReadOnlySpan<Char>)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een reeks tekens naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en mogelijk de specifieke tekens die naar de stream worden geschreven.

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

Parameters

chars
ReadOnlySpan<Char>

Een reeks tekens die moeten worden geschreven.

Van toepassing op

Write(ReadOnlySpan<Byte>)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een bereik van bytes naar de huidige stroom.

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

Parameters

buffer
ReadOnlySpan<Byte>

Het aantal bytes dat moet worden geschreven.

Van toepassing op

Write(Int64)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een met acht byte ondertekend geheel getal naar de huidige stroom en wordt de positie van de stream met acht bytes verplaatst.

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)

Parameters

value
Int64

Het teken gehele getal met acht bytes dat moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Char[])

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een tekenmatrix naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en de specifieke tekens die naar de stream worden geschreven.

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

Parameters

chars
Char[]

Een tekenmatrix die de gegevens bevat die moeten worden geschreven.

Uitzonderingen

chars is null.

De stream is gesloten.

Er treedt een I/O-fout op.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens kunt lezen en schrijven met behulp van geheugen als back-uparchief.

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

Opmerkingen

De volgende tabel bevat voorbeelden van andere typische of gerelateerde I/O-taken.

Om dit te doen… Zie het voorbeeld in dit onderwerp...
Maak een tekstbestand. Procedure: Tekst naar een bestand schrijven
Schrijf naar een tekstbestand. Procedure: Tekst naar een bestand schrijven
Lezen uit een tekstbestand. Procedure: Tekst uit een bestand lezen
Voeg tekst toe aan een bestand. Procedure: Openen en toevoegen aan een logboekbestand

File.AppendText

FileInfo.AppendText
De grootte van een bestand ophalen. FileInfo.Length
Haal de kenmerken van een bestand op. File.GetAttributes
Stel de kenmerken van een bestand in. File.SetAttributes
Bepaal of er een bestand bestaat. File.Exists
Lezen uit een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand
Schrijven naar een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand

Zie ook

Van toepassing op

Write(Int16)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een geheel getal met twee bytetekens naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

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)

Parameters

value
Int16

Het twee-byte ondertekende gehele getal dat moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

De volgende tabel bevat voorbeelden van andere typische of gerelateerde I/O-taken.

Om dit te doen… Zie het voorbeeld in dit onderwerp...
Maak een tekstbestand. Procedure: Tekst naar een bestand schrijven
Schrijf naar een tekstbestand. Procedure: Tekst naar een bestand schrijven
Lezen uit een tekstbestand. Procedure: Tekst uit een bestand lezen
Voeg tekst toe aan een bestand. Procedure: Openen en toevoegen aan een logboekbestand

File.AppendText

FileInfo.AppendText
De grootte van een bestand ophalen. FileInfo.Length
Haal de kenmerken van een bestand op. File.GetAttributes
Stel de kenmerken van een bestand in. File.SetAttributes
Bepaal of er een bestand bestaat. File.Exists
Lezen uit een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand
Schrijven naar een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand

Zie ook

Van toepassing op

Write(Half)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een drijvende-kommawaarde van twee bytes naar de huidige stroom en wordt de positie van de stream met twee bytes verplaatst.

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)

Parameters

value
Half

De drijvende-kommawaarde van twee bytes die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens in het geheugen kunt lezen en schrijven Double met behulp van de BinaryReader en BinaryWriter klassen boven op de MemoryStream klasse. MemoryStream alleen gegevens leest en schrijft Byte .

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Double)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een drijvende-kommawaarde van acht bytes naar de huidige stroom en wordt de positie van de stroom met acht bytes verplaatst.

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)

Parameters

value
Double

De drijvende-kommawaarde van acht bytes die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens in het geheugen kunt lezen en schrijven Double met behulp van de BinaryReader en BinaryWriter klassen boven op de MemoryStream klasse. MemoryStream alleen gegevens leest en schrijft Byte .

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Decimal)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een decimale waarde naar de huidige stroom en wordt de positie van de stroom met zestien bytes verplaatst.

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)

Parameters

value
Decimal

De decimale waarde die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Opmerkingen

De volgende tabel bevat voorbeelden van andere typische of gerelateerde I/O-taken.

Om dit te doen… Zie het voorbeeld in dit onderwerp...
Maak een tekstbestand. Procedure: Tekst naar een bestand schrijven
Schrijf naar een tekstbestand. Procedure: Tekst naar een bestand schrijven
Lezen uit een tekstbestand. Procedure: Tekst uit een bestand lezen
Voeg tekst toe aan een bestand. Procedure: Openen en toevoegen aan een logboekbestand

File.AppendText

FileInfo.AppendText
De grootte van een bestand ophalen. FileInfo.Length
Haal de kenmerken van een bestand op. File.GetAttributes
Stel de kenmerken van een bestand in. File.SetAttributes
Bepaal of er een bestand bestaat. File.Exists
Lezen uit een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand
Schrijven naar een binair bestand. Procedure: lezen en schrijven naar een nieuw gegevensbestand

Zie ook

Van toepassing op

Write(Char)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een Unicode-teken naar de huidige stroom en wordt de huidige positie van de stroom naar voren gebracht overeenkomstig de Encoding gebruikte tekens en de specifieke tekens die naar de stream worden geschreven.

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)

Parameters

ch
Char

Het niet-surrogaat, Unicode-teken dat moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

ch is één surrogaatteken.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens kunt lezen en schrijven met behulp van geheugen als back-uparchief.

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

Opmerkingen

Vanwege conflicten met gegevensopmaak wordt het gebruik van deze methode met de volgende coderingen niet aanbevolen:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Unicode-surrogaattekens moeten worden weggeschreven als paren in dezelfde aanroep, niet afzonderlijk. Als u ondersteuning nodig hebt voor surrogaatparen in uw toepassing, kunt u overwegen om een tekenmatrix en de overbelasting van de Write methode te gebruiken.

Zie ook

Van toepassing op

Write(Byte[])

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een bytematrix naar de onderliggende stroom.

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

Parameters

buffer
Byte[]

Een bytematrix die de gegevens bevat die moeten worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

buffer is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u binaire gegevens schrijft met behulp van geheugen als back-upopslag en vervolgens controleert of de gegevens correct zijn geschreven.

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Byte)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een niet-ondertekende byte naar de huidige stroom en wordt de positie van de stream met één byte vooruitgezet.

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)

Parameters

value
Byte

De niet-ondertekende byte die moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u binaire gegevens schrijft met behulp van geheugen als back-upopslag en vervolgens controleert of de gegevens correct zijn geschreven.

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

Opmerkingen

Vanwege conflicten met gegevensopmaak wordt het gebruik van deze methode met de volgende coderingen niet aanbevolen:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Boolean)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een een-bytewaarde Boolean naar de huidige stroom, met 0 die vertegenwoordigt false en 1.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)

Parameters

value
Boolean

De Boolean waarde die moet worden geschreven (0 of 1).

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u toepassingsinstellingen in een bestand opslaat en ophaalt.

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

Opmerkingen

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Write(Int32)

Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs
Bron:
BinaryWriter.cs

Hiermee schrijft u een geheel getal met vier bytetekens naar de huidige stroom en wordt de positie van de stream met vier bytes verplaatst.

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)

Parameters

value
Int32

Het vier-byte ondertekende gehele getal dat moet worden geschreven.

Uitzonderingen

Er treedt een I/O-fout op.

De stream is gesloten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u toepassingsinstellingen in een bestand opslaat en ophaalt.

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

Opmerkingen

BinaryWriter slaat dit gegevenstype op in een kleine endian-indeling.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op