StreamReader.ReadAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
ReadAsync(Memory<Char>, CancellationToken) |
Lit de façon asynchrone les caractères du flux actuel dans un bloc de mémoire. |
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é. |
ReadAsync(Memory<Char>, CancellationToken)
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
Lit de façon asynchrone les caractères du flux actuel dans un bloc de mémoire.
public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<char> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<char> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Char), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Paramètres
Quand cette méthode retourne un résultat, contient le bloc mémoire spécifié de caractères remplacés par les caractères lus dans la source actuelle.
- cancellationToken
- CancellationToken
Jeton pour surveiller les requêtes d'annulation. La valeur par défaut est None.
Retours
Valeur de tâche qui représente l'opération de lecture asynchrone. Valeur du paramètre de type de la tâche de valeur contenant le nombre de caractères qui ont été lus, ou 0 si c'est la fin du flux et qu'aucune donnée n'a été lue. Le nombre sera inférieur ou égal à la longueur buffer
, selon que les données sont, ou non, disponibles dans le flux.
Exceptions
Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.
S’applique à
ReadAsync(Char[], Int32, Int32)
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
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é.
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <char> ^ buffer, int index, int count);
public override System.Threading.Tasks.Task<int> ReadAsync (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>
[<System.Runtime.InteropServices.ComVisible(false)>]
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.
- index
- Int32
Position dans buffer
à partir de laquelle commencer l'écriture.
- count
- Int32
Nombre maximal de caractères à lire. 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.
Retours
Tâche qui représente l'opération de lecture asynchrone. La valeur du paramètre TResult
contient le nombre total de caractères lus dans la mémoire tampon. 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.
- Attributs
Exceptions
buffer
a la valeur null
.
index
ou count
est un nombre négatif.
La somme de index
et count
est supérieure à la longueur de la mémoire tampon.
Le flux a été supprimé.
Le lecteur est actuellement utilisé par une opération de lecture antérieure.
Exemples
L’exemple suivant montre comment lire tous les caractères d’un fichier à l’aide de la ReadAsync(Char[], Int32, Int32) méthode . Il vérifie si chaque caractère est une lettre, un chiffre ou un espace blanc avant d’ajouter le caractère à un instance de la StringBuilder classe.
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é par le count
paramètre est lu ou que la fin du flux est atteinte.
Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que le équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour les exceptions stockées, consultez les exceptions levées par Read(Char[], Int32, Int32).