BinaryReader.ReadChars(Int32) Metodo

Definizione

Legge il numero specificato di caratteri dal flusso corrente, restituisce i dati in una matrice di caratteri e sposta in avanti la posizione corrente secondo il valore Encoding usato e il carattere specifico letto dal flusso.Reads the specified number of characters from the current stream, returns the data in a character array, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.

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

Parametri

count
Int32

Numero di caratteri da leggere.The number of characters to read.

Restituisce

Char[]

Matrice di caratteri contenente dati letti dal flusso sottostante.A character array containing data read from the underlying stream. Può essere minore del numero di caratteri necessari se viene raggiunta la fine del flusso.This might be less than the number of characters requested if the end of the stream is reached.

Eccezioni

Il numero dei caratteri decodificati da leggere è maggiore di count.The number of decoded characters to read is greater than count. Questa situazione può verificarsi se un decodificatore Unicode restituisce caratteri di fallback o una coppia di surrogati.This can happen if a Unicode decoder returns fallback characters or a surrogate pair.

Il flusso è chiuso.The stream is closed.

Si è verificato un errore di I/O.An I/O error occurred.

count è negativo.count is negative.

Esempio

Nell'esempio di codice seguente viene illustrato come leggere e scrivere dati utilizzando la memoria come archivio di backup.The following code example shows how to read and write data using memory as a backing store.

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)));
    }
}
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

Commenti

BinaryReader non ripristina la posizione del file dopo un'operazione di lettura non riuscita.BinaryReader does not restore the file position after an unsuccessful read operation.

Quando si leggono i flussi di rete, in alcuni casi rari il ReadChars metodo può leggere un carattere aggiuntivo dal flusso se BinaryReader è stato costruito con la codifica Unicode.When reading from network streams, in some rare cases, the ReadChars method might read an extra character from the stream if the BinaryReader was constructed with Unicode encoding. In tal caso, è possibile usare il ReadBytes metodo per leggere una matrice di byte a lunghezza fissa, quindi passare la matrice al ReadChars metodo.If this occurs, you can use the ReadBytes method to read a fixed-length byte array, and then pass that array to the ReadChars method.

Si applica a

Vedi anche