StreamReader.ReadAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
| Name | Description |
|---|---|
| ReadAsync(Memory<Char>, CancellationToken) |
현재 스트림의 문자를 메모리 블록으로 비동기적으로 읽습니다. |
| ReadAsync(Char[], Int32, Int32) |
현재 스트림에서 지정된 최대 문자 수를 비동기적으로 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다. |
ReadAsync(Memory<Char>, CancellationToken)
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
현재 스트림의 문자를 메모리 블록으로 비동기적으로 읽습니다.
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)
매개 변수
- cancellationToken
- CancellationToken
취소 요청을 모니터링할 토큰입니다. 기본값은 None입니다.
반품
비동기 읽기 작업을 나타내는 값 작업입니다. 값 태스크의 형식 매개 변수 값에는 읽은 문자 수가 포함되고 스트림 끝에 데이터가 읽혀지지 않은 경우 0이 포함됩니다. 스트림 내에서 데이터를 사용할 수 있는지 여부에 따라 숫자가 길이보다 작거나 같습니다 buffer .
예외
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
ReadAsync(Char[], Int32, Int32)
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
- Source:
- StreamReader.cs
현재 스트림에서 지정된 최대 문자 수를 비동기적으로 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다.
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)
매개 변수
- buffer
- Char[]
이 메서드가 반환될 때 현재 소스에서 읽은 문자로 바뀐 값과 (indexindex + - 1) 사이의 count 값을 가진 지정된 문자 배열을 포함합니다.
- index
- Int32
쓰기를 시작할 위치 buffer 입니다.
- count
- Int32
읽을 최대 문자 수입니다. 지정된 수의 문자가 버퍼에 기록되기 전에 스트림의 끝에 도달하면 현재 메서드가 반환됩니다.
반품
비동기 읽기 작업을 나타내는 작업입니다. 매개 변수 값 TResult 에는 버퍼로 읽은 총 문자 수가 포함됩니다. 현재 사용할 수 있는 문자 수가 요청된 수보다 작거나 스트림의 끝에 도달한 경우 0이 될 수 있는 경우 결과 값은 요청된 문자 수보다 작을 수 있습니다.
- 특성
예외
buffer은 null입니다.
index 또는 count 음수입니다.
버퍼 길이보다 큰 합계 index 입니다 count .
스트림이 삭제되었습니다.
판독기는 현재 이전 읽기 작업에서 사용 중입니다.
예제
다음 예제에서는 메서드를 사용하여 파일의 모든 문자를 읽는 ReadAsync(Char[], Int32, Int32) 방법을 보여줍니다. 클래스 인스턴스 StringBuilder 에 문자를 추가하기 전에 각 문자가 문자, 숫자 또는 공백인지 여부를 확인합니다.
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
설명
매개 변수에 지정된 count 문자 수를 읽거나 스트림의 끝에 도달하면 작업이 완료됩니다.
이 메서드는 메서드의 동기 대응이 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 태스크가 대기될 때 해당 예외가 throw됩니다. ArgumentException같은 사용 예외는 여전히 동기적으로 던져집니다. 저장된 예외는 .에 의해 Read(Char[], Int32, Int32)throw된 예외를 참조하세요.