BinaryReader.ReadChars(Int32) Yöntem

Tanım

Geçerli akıştan belirtilen sayıda karakteri 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 daha az olabilir.

Özel durumlar

Okunacak kod çözme karakterlerinin sayısı değerinden countbüyük. Unicode kod çözücü geri dönüş karakterleri veya vekil çifti döndürürse bu durum oluşabilir.

Akış kapatılır.

G/ç hatası oluştu.

count negatiftir.

Örnekler

Aşağıdaki kod örneği, yedekleme deposu olarak bellek kullanarak verileri okuma ve yazma işlemini gösterir.

using namespace System;
using namespace System::IO;
int main()
{
   array<Char>^invalidPathChars = Path::InvalidPathChars;
   MemoryStream^ memStream = gcnew MemoryStream;
   BinaryWriter^ binWriter = gcnew 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 = gcnew BinaryReader( memStream );
   
   // Set Position to the beginning of the stream.
   binReader->BaseStream->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) ) );
}
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 yöntemi, ReadChars 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 geçirmek için ReadChars yöntemini kullanabilirsinizReadBytes.

Şunlara uygulanır

Ayrıca bkz.