StreamReader.ReadAsync StreamReader.ReadAsync StreamReader.ReadAsync StreamReader.ReadAsync Method

Définition

Surcharges

ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken)
ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32)

Lit un nombre maximal spécifié de caractères dans le flux actuel de manière asynchrone, et écrit les données dans une mémoire tampon, en commençant à l'index spécifié.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken)

public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<char> buffer, System.Threading.CancellationToken cancellationToken = null);
override this.ReadAsync : Memory<char> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>

Paramètres

buffer
Memory<Char>

Retours

ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32)

Lit un nombre maximal spécifié de caractères dans le flux actuel de manière asynchrone, et écrit les données dans une mémoire tampon, en commençant à l'index spécifié.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <char> ^ buffer, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task<int> ReadAsync (char[] buffer, int index, int count);
override this.ReadAsync : char[] * int * int -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Char(), index As Integer, count As Integer) As Task(Of Integer)

Paramètres

buffer
Char[]

Quand cette méthode est retournée, contient le tableau de caractères spécifié dont les valeurs comprises entre index et (index + count - 1) sont remplacées par les caractères lus dans la source actuelle.When this method returns, contains the specified character array with the values between index and (index + count - 1) replaced by the characters read from the current source.

index
Int32 Int32 Int32 Int32

Position dans buffer à partir de laquelle commencer l'écriture.The position in buffer at which to begin writing.

count
Int32 Int32 Int32 Int32

Nombre maximal de caractères à lire.The maximum number of characters to read. Si la fin du flux est atteinte avant que le nombre de caractères spécifié soit écrit dans la mémoire tampon, la méthode en cours se termine.If the end of the stream is reached before the specified number of characters is written into the buffer, the current method returns.

Retours

Tâche qui représente l'opération de lecture asynchrone.A task that represents the asynchronous read operation. La valeur du paramètre TResult contient le nombre total de caractères lus dans la mémoire tampon.The value of the TResult parameter contains the total number of characters read into the buffer. La valeur du résultat peut être inférieure au nombre de caractères demandés si le nombre de caractères actuellement disponibles est inférieur au nombre demandé, ou elle peut avoir la valeur 0 (zéro) si la fin du flux a été atteinte.The result value can be less than the number of characters requested if the number of characters currently available is less than the requested number, or it can be 0 (zero) if the end of the stream has been reached.

Exceptions

La somme de index et count est supérieure à la longueur de la mémoire tampon.The sum of index and count is larger than the buffer length.

Le lecteur est actuellement utilisé par une opération de lecture antérieure.The reader is currently in use by a previous read operation.

Exemples

L’exemple suivant montre comment lire tous les caractères d’un fichier à l’aide de ReadAsync(Char[], Int32, Int32) la méthode.The following example shows how to read all the characters in a file by using the ReadAsync(Char[], Int32, Int32) method. Il vérifie si chaque caractère est une lettre, un chiffre ou un espace blanc avant d’ajouter le caractère à une instance StringBuilder de la classe.It checks whether each character is a letter, digit, or white space before adding the character to an instance of the StringBuilder class.

using System;
using System.Windows;
using System.IO;
using System.Text;

namespace WpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            string filename = @"C:\Example\existingfile.txt";
            char[] result;
            StringBuilder builder = new StringBuilder();

            using (StreamReader reader = File.OpenText(filename))
            {
                result = new char[reader.BaseStream.Length];
                await reader.ReadAsync(result, 0, (int)reader.BaseStream.Length);
            }
           
            foreach (char c in result)
            {
                if (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c))
                {
                    builder.Append(c);
                }
            }
            FileOutput.Text = builder.ToString();
        }
    }
}
Imports System.Text
Imports System.IO

Class MainWindow

    Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
        Dim filename As String = "C:\Example\existingfile.txt"
        Dim result() As Char
        Dim builder As StringBuilder = New StringBuilder()

        Using reader As StreamReader = File.OpenText(filename)
            ReDim result(reader.BaseStream.Length)
            Await reader.ReadAsync(result, 0, reader.BaseStream.Length)
        End Using

        For Each c As Char In result
            If (Char.IsLetterOrDigit(c) Or Char.IsWhiteSpace(c)) Then
                builder.Append(c)
            End If
            Next
        FileOutput.Text = builder.ToString()
    End Sub
End Class

Remarques

La tâche se termine une fois que le nombre de caractères spécifiés par le count paramètre est lu ou que la fin du flux est atteinte.The task completes after either the number of characters specified by the count parameter are read or the end of the stream is reached.

S’applique à