BinaryReader.ReadChars(Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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.