BinaryReader.ReadChars(Int32) Methode

Definitie

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

Char[]

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.

Van toepassing op

Zie ook