Freigeben über


BinaryReader.Read Methode

Definition

Liest Bytes aus dem zugrunde liegenden Datenstrom und erhöht die aktuelle Position des Datenstroms.

Überlädt

Read()

Liest Zeichen aus dem zugrunde liegenden Stream und erhöht die aktuelle Position im Stream in Abhängigkeit von der verwendeten Encoding und dem aus dem Stream gelesenen Zeichen.

Read(Span<Byte>)

Liest eine Bytesequenz aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn.

Read(Span<Char>)

Liest die gleiche Anzahl von Zeichen aus dem aktuellen Stream wie die Länge des bereitgestellten Puffers, schreibt sie in den bereitgestellten Puffer und erhöht die aktuelle Position in Abhängigkeit von der verwendeten Encoding und dem aus dem Stream gelesenen Zeichen.

Read(Byte[], Int32, Int32)

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

Read(Char[], Int32, Int32)

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

Read()

Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs

Liest Zeichen aus dem zugrunde liegenden Stream und erhöht die aktuelle Position im Stream in Abhängigkeit von der verwendeten Encoding und dem aus dem Stream gelesenen Zeichen.

public:
 virtual int Read();
public virtual int Read ();
abstract member Read : unit -> int
override this.Read : unit -> int
Public Overridable Function Read () As Integer

Gibt zurück

Das nächste Zeichen aus dem Eingabestream bzw. -1, wenn derzeit keine Zeichen verfügbar sind.

Ausnahmen

E/A-Fehler

Der Stream ist geschlossen.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Daten mithilfe von Arbeitsspeicher als Sicherungsspeicher gelesen und geschrieben werden. In diesem Beispiel wird eine Liste ungültiger Dateipfadzeichen zur Konsole angezeigt. Obwohl der Code versucht, eine Liste aller ungültigen Dateipfadzeichen anzuzeigen, befinden sich nicht alle Zeichen innerhalb des anzeigbaren Zeichensatzes. Da die Liste der ungültigen Zeichen je nach System variieren kann, kann auch die Ausgabe für diesen Code variieren.

using namespace System;
using namespace System::IO;
int main()
{
   int i;
   array<Char>^invalidPathChars = Path::InvalidPathChars;
   MemoryStream^ memStream = gcnew MemoryStream;
   BinaryWriter^ binWriter = gcnew 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 = gcnew BinaryReader( memStream );
   
   // Set Position to the beginning of the stream.
   binReader->BaseStream->Position = 0;
   
   // Read the data from memory and write it to the console.
   Console::Write( binReader->ReadString() );
   array<Char>^memoryData = gcnew array<Char>(memStream->Length - memStream->Position);
   for ( i = 0; i < memoryData->Length; i++ )
   {
      memoryData[ i ] = Convert::ToChar( binReader->Read() );

   }
   Console::WriteLine( memoryData );
}
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] = Convert.ToChar(binReader.Read());
        }
        Console.WriteLine(memoryData);
    }
}
open System
open System.IO

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

// Write to memory.
printf "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 =
    [| for _ = 0L to memStream.Length - memStream.Position - 1L do
        Convert.ToChar(binReader.Read()) |]
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) = Convert.ToChar(binReader.Read())
        Next i
        Console.WriteLine(memoryData)
    
    End Sub
End Class

Hinweise

BinaryReader stellt die Dateiposition nach einem nicht erfolgreichen Lesevorgang nicht wieder her.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für:

Read(Span<Byte>)

Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs

Liest eine Bytesequenz aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn.

public:
 virtual int Read(Span<System::Byte> buffer);
public virtual int Read (Span<byte> buffer);
abstract member Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overridable Function Read (buffer As Span(Of Byte)) As Integer

Parameter

buffer
Span<Byte>

Ein Bereich im Arbeitsspeicher. Bei der Rückgabe dieser Methode werden die Inhalte dieses Bereichs durch die aus der aktuellen Quelle gelesenen Bytes ersetzt.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann weniger als die Anzahl der im Puffer zugeordneten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder 0 (null), wenn das Ende des Streams erreicht ist.

Ausnahmen

Der Stream ist geschlossen.

E/A-Fehler

Gilt für:

Read(Span<Char>)

Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs

Liest die gleiche Anzahl von Zeichen aus dem aktuellen Stream wie die Länge des bereitgestellten Puffers, schreibt sie in den bereitgestellten Puffer und erhöht die aktuelle Position in Abhängigkeit von der verwendeten Encoding und dem aus dem Stream gelesenen Zeichen.

public:
 virtual int Read(Span<char> buffer);
public virtual int Read (Span<char> buffer);
abstract member Read : Span<char> -> int
override this.Read : Span<char> -> int
Public Overridable Function Read (buffer As Span(Of Char)) As Integer

Parameter

buffer
Span<Char>

Eine Spanne von Zeichen. Bei der Rückgabe dieser Methode werden die Inhalte dieses Bereichs durch die aus der aktuellen Quelle gelesenen Zeichen ersetzt.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Zeichen. Diese kann kleiner sein als die Anzahl der angeforderten Zeichen, wenn gegenwärtig keine entsprechende Anzahl von Bytes verfügbar ist, oder null, wenn das Ende des Streams erreicht ist.

Ausnahmen

Der Stream ist geschlossen.

E/A-Fehler

Gilt für:

Read(Byte[], Int32, Int32)

Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs

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

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

Parameter

buffer
Byte[]

Der Puffer, in den Daten gelesen werden sollen.

index
Int32

Der Anfangspunkt für das Lesen in den Puffer.

count
Int32

Die Anzahl der zu lesenden Bytes.

Gibt zurück

Die Anzahl von Bytes, die in buffer gelesen wurden. Diese kann kleiner sein als die Anzahl der angeforderten Bytes, wenn gegenwärtig keine entsprechende Anzahl von Bytes verfügbar ist, oder null, wenn das Ende des Streams erreicht ist.

Ausnahmen

Die Pufferlänge minus index ist kleiner als count.

- oder -

Die Anzahl der zu lesenden decodierten Zeichen ist größer als count. Dies kann geschehen, wenn ein Unicode-Decoder Fallbackzeichen oder ein Ersatzzeichenpaar zurückgibt.

buffer ist null.

index oder count ist ein negativer Wert.

Der Stream ist geschlossen.

E/A-Fehler

Beispiele

Im folgenden Beispiel wird gezeigt, wie Binärdaten mithilfe von Arbeitsspeicher als Sicherungsspeicher geschrieben werden. Es wird eine Meldung an die Konsole angezeigt, die angibt, ob die Daten ordnungsgemäß 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

In diesem Beispiel wird der Inhalt einer Datei gelesen und der numerische Wert jedes Byte im 16-Spalten-Format angezeigt. Das Ende der Datei, die gelesen wird, wird erkannt, wenn die Read Methode null Bytes zurückgibt.

using System;
using System.IO;
using System.Text;

public class DumpFileSample
{
    private static readonly int CHUNK_SIZE = 1024;
    public static void Main(String[] args)
    {
        if ((args.Length == 0) || !File.Exists(args[0]))
        {
            Console.WriteLine("Please provide an existing file name.");
        }
        else
        {
            using (FileStream fs = new FileStream(args[0], FileMode.Open, FileAccess.Read))
            {
                using (BinaryReader br = new BinaryReader(fs, new ASCIIEncoding()))
                {
                    byte[] chunk;

                    chunk = br.ReadBytes(CHUNK_SIZE);
                    while(chunk.Length > 0)
                    {
                        DumpBytes(chunk, chunk.Length);
                        chunk = br.ReadBytes(CHUNK_SIZE);
                    }
                }
            }
        }
    }

    public static void DumpBytes(byte[] bdata, int len)
    {
        int i;
        int j = 0;
        char dchar;
        // 3 * 16 chars for hex display, 16 chars for text and 8 chars
        // for the 'gutter' int the middle.
        StringBuilder dumptext = new StringBuilder("        ", 16 * 4 + 8);
        for (i = 0; i < len; i++)
        {
            dumptext.Insert(j * 3, String.Format("{0:X2} ", (int)bdata[i]));
            dchar = (char)bdata[i];
            //' replace 'non-printable' chars with a '.'.
            if (Char.IsWhiteSpace(dchar) || Char.IsControl(dchar))
            {
                dchar = '.';
            }
            dumptext.Append(dchar);
            j++;
            if (j == 16)
            {
                Console.WriteLine(dumptext);
                dumptext.Length = 0;
                dumptext.Append("        ");
                j = 0;
            }
        }
        // display the remaining line
        if (j > 0)
        {
            for (i = j; i < 16; i++)
            {
                dumptext.Insert(j * 3, "   ");
            }
            Console.WriteLine(dumptext);
        }
    }
}
open System
open System.IO
open System.Text

let CHUNK_SIZE = 1024

let dumpBytes (bdata: byte[]) len =
    let mutable j = 0
    // 3 * 16 chars for hex display, 16 chars for text and 8 chars
    // for the 'gutter' int the middle.
    let dumptext = StringBuilder("        ", 16 * 4 + 8)
    for i = 0 to len - 1 do
        dumptext.Insert(j * 3, $"{int bdata[i]:X2} ") |> ignore
        let dchar = char bdata[i]
        //' replace 'non-printable' chars with a '.'.
        let dchar = 
            if Char.IsWhiteSpace dchar || Char.IsControl dchar then
                '.'
            else 
                dchar
        dumptext.Append dchar |> ignore
        j <- j + 1
        if j = 16 then
            printfn $"{dumptext}"
            dumptext.Length <- 0
            dumptext.Append "        " |> ignore
            j <- 0
    // display the remaining line
    if j > 0 then
        for i = j to 15 do
            dumptext.Insert(j * 3, "   ") |> ignore
        printfn $"{dumptext}"

[<EntryPoint>]
let main args =
    if args.Length = 0 || File.Exists args[0] |> not then
        printfn "Please provide an existing file name."
    else
        use fs = new FileStream(args[0], FileMode.Open, FileAccess.Read)
        use br = new BinaryReader(fs, ASCIIEncoding())
        
        let mutable chunk = br.ReadBytes CHUNK_SIZE
        while chunk.Length > 0 do
            dumpBytes chunk chunk.Length
            chunk <- br.ReadBytes CHUNK_SIZE
    0
Imports System.IO
Imports System.Text

Module Module1
    Private ReadOnly CHUNK_SIZE As Integer = 1024
    Public Sub Main(args() As String)
        If ((args.Length = 0) OrElse Not File.Exists(args(0))) Then
            Console.WriteLine("Please provide an existing file name.")
        Else
            Using fs As FileStream = New FileStream(args(0), FileMode.Open, FileAccess.Read)
                Using br As New BinaryReader(fs, New ASCIIEncoding())
                    Dim chunk(CHUNK_SIZE) As Byte
                    chunk = br.ReadBytes(CHUNK_SIZE)

                    While chunk.Length > 0
                        DumpBytes(chunk, chunk.Length)
                        chunk = br.ReadBytes(CHUNK_SIZE)
                    End While
                End Using
            End Using
        End If
    End Sub

    Public Sub DumpBytes(bdata() As Byte, len As Integer)
        Dim i As Integer
        Dim j As Integer = 0
        Dim dchar As Char
        ' 3 * 16 chars for hex display, 16 chars for text and 8 chars
        ' for the 'gutter' int the middle.
        Dim dumptext As New StringBuilder("        ", 16 * 4 + 8)
        For i = 0 To len - 1
            dumptext.Insert(j * 3, String.Format("{0:X2} ", CType(bdata(i), Integer)))
            dchar = Convert.ToChar(bdata(i))
            ' replace 'non-printable' chars with a '.'.
            If Char.IsWhiteSpace(dchar) Or Char.IsControl(dchar) Then
                dchar = "."
            End If
            dumptext.Append(dchar)
            j += 1
            If j = 16 Then
                Console.WriteLine(dumptext)
                dumptext.Length = 0
                dumptext.Append("        ")
                j = 0
            End If
        Next i
        ' display the remaining line
        If j > 0 Then
            ' add blank hex spots to align the 'gutter'.
            For i = j To 15
                dumptext.Insert(j * 3, "   ")
            Next i
            Console.WriteLine(dumptext)
        End If
    End Sub

End Module

Hinweise

BinaryReader stellt die Dateiposition nach einem fehlgeschlagenen Lesevorgang nicht wieder her.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für:

Read(Char[], Int32, Int32)

Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs
Quelle:
BinaryReader.cs

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

public:
 virtual int Read(cli::array <char> ^ buffer, int index, int count);
public virtual int Read (char[] buffer, int index, int count);
abstract member Read : char[] * int * int -> int
override this.Read : char[] * int * int -> int
Public Overridable Function Read (buffer As Char(), index As Integer, count As Integer) As Integer

Parameter

buffer
Char[]

Der Puffer, in den Daten gelesen werden sollen.

index
Int32

Der Anfangspunkt für das Lesen in den Puffer.

count
Int32

Die Anzahl der zu lesenden Zeichen.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Zeichen. Diese kann kleiner sein als die Anzahl der angeforderten Zeichen, wenn gegenwärtig keine entsprechende Anzahl von Bytes verfügbar ist, oder null, wenn das Ende des Streams erreicht ist.

Ausnahmen

Die Pufferlänge minus index ist kleiner als count.

- oder -

Die Anzahl der zu lesenden decodierten Zeichen ist größer als count. Dies kann geschehen, wenn ein Unicode-Decoder Fallbackzeichen oder ein Ersatzzeichenpaar zurückgibt.

buffer ist null.

index oder count ist ein negativer Wert.

Der Stream ist geschlossen.

E/A-Fehler

Beispiele

Im folgenden Beispiel wird gezeigt, wie Daten mithilfe von Arbeitsspeicher als Sicherungsspeicher gelesen und geschrieben werden. In diesem Beispiel wird eine Liste ungültiger Dateipfadzeichen zur Konsole angezeigt. Obwohl der Code versucht, eine Liste aller ungültigen Dateipfadzeichen anzuzeigen, befinden sich nicht alle Zeichen innerhalb des anzeigbaren Zeichensatzes. Da die Liste der ungültigen Zeichen je nach System variieren kann, kann auch die Ausgabe für diesen Code variieren.

using namespace System;
using namespace System::IO;
int main()
{
   array<Char>^invalidPathChars = Path::InvalidPathChars;
   MemoryStream^ memStream = gcnew MemoryStream;
   BinaryWriter^ binWriter = gcnew 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 = gcnew BinaryReader( memStream );
   
   // Set Position to the beginning of the stream.
   binReader->BaseStream->Position = 0;
   
   // Read the data from memory and write it to the console.
   Console::Write( binReader->ReadString() );
   int arraySize = (int)(memStream->Length - memStream->Position);
   array<Char>^memoryData = gcnew array<Char>(arraySize);
   binReader->Read( memoryData, 0, arraySize );
   Console::WriteLine( memoryData );
}
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

BinaryReader stellt die Dateiposition nach einem fehlgeschlagenen Lesevorgang nicht wieder her.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für: