BinaryReader.ReadChars(Int32) Methode

Definition

Liest die angegebene Anzahl von Zeichen aus dem aktuellen Datenstrom, gibt die Daten in einem Zeichenarray zurück und wechselt die aktuelle Position in Übereinstimmung mit dem Encoding verwendeten und dem spezifischen Zeichen, das aus dem Datenstrom gelesen wird.

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

Parameter

count
Int32

Die Anzahl der zu lesenden Zeichen.

Gibt zurück

Char[]

Ein Zeichenarray, das Daten enthält, die aus dem zugrunde liegenden Datenstrom gelesen werden. Dies kann kleiner als die Anzahl der angeforderten Zeichen sein, wenn das Ende des Datenstroms erreicht ist.

Ausnahmen

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

Der Datenstrom wird geschlossen.

Ein E/A-Fehler ist aufgetreten.

count ist negativ.

Beispiele

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

using System;
using System.IO;

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

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

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

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

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

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

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

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

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

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

Public Class BinaryRW

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

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

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

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

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

Hinweise

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

Beim Lesen aus Netzwerkdatenströmen kann die ReadChars Methode in einigen seltenen Fällen ein zusätzliches Zeichen aus dem Datenstrom lesen, wenn dies BinaryReader mit Unicode-Codierung erstellt wurde. Wenn dies der Fall ist, können Sie die ReadBytes Methode verwenden, um ein Bytearray mit fester Länge zu lesen und dieses Array dann an die ReadChars Methode zu übergeben.

Gilt für:

Weitere Informationen