BinaryReader.ReadChars(Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.