BinaryReader.ReadChars(Int32) Yöntem

Tanım

Geçerli akıştan belirtilen karakter sayısını okur, bir karakter dizisindeki verileri döndürür ve kullanılan ve akıştan okunan belirli karaktere göre Encoding geçerli konumu ilerletir.

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()

Parametreler

count
Int32

Okunacak karakter sayısı.

Döndürülenler

Char[]

Temel alınan akıştan okunan verileri içeren bir karakter dizisi. Bu, akışın sonuna ulaşılırsa istenen karakter sayısından az olabilir.

Özel durumlar

Okunacak kod çözülen karakter sayısı değerinden büyüktür count. Unicode kod çözücü geri dönüş karakterleri veya vekil çifti döndürdüğünde bu durum oluşabilir.

Akış kapatıldı.

G/Ç hatası oluştu.

count negatiftir.

Örnekler

Aşağıdaki kod örneğinde, yedekleme deposu olarak bellek kullanılarak verilerin nasıl okunduğu ve yazılması gösterilmektedir.

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

Açıklamalar

BinaryReader başarısız bir okuma işleminden sonra dosya konumunu geri yüklemez.

Ağ akışlarından okurken, bazı nadir durumlarda, ReadChars yöntemi Unicode kodlama ile oluşturulduysa BinaryReader akıştan ek bir karakter okuyabilir. Bu durumda, sabit uzunlukta bir bayt dizisini okumak ve ardından bu diziyi yöntemine ReadBytes geçirmek için yöntemini kullanabilirsinizReadChars.

Şunlara uygulanır

Ayrıca bkz.