BinaryReader.ReadChars(Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Leest het opgegeven aantal tekens uit de huidige stroom, retourneert de gegevens in een tekenmatrix en gaat naar de huidige positie in overeenstemming met het Encoding gebruikte teken en het specifieke teken dat uit de stroom wordt gelezen.
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()
Parameters
- count
- Int32
Het aantal tekens dat moet worden gelezen.
Retouren
Een tekenmatrix met gegevens die uit de onderliggende stroom worden gelezen. Dit kan minder zijn dan het aantal tekens dat is aangevraagd als het einde van de stream is bereikt.
Uitzonderingen
Het aantal gedecodeerde tekens dat moet worden gelezen, is groter dan count. Dit kan gebeuren als een Unicode-decoder terugvaltekens of een surrogaatpaar retourneert.
De stream is gesloten.
Er is een I/O-fout opgetreden.
count is negatief.
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
BinaryReader herstelt de bestandspositie niet na een mislukte leesbewerking.
Bij het lezen van netwerkstreams kan de ReadChars methode in sommige zeldzame gevallen een extra teken uit de stream lezen als de BinaryReader code is samengesteld met Unicode-codering. Als dit gebeurt, kunt u de ReadBytes methode gebruiken om een bytematrix met vaste lengte te lezen en die matrix vervolgens door te geven aan de ReadChars methode.