다음을 통해 공유


TextReader 클래스

정의

여러 개의 문자를 순차적으로 읽을 수 있는 판독기를 나타냅니다.

public ref class TextReader abstract : IDisposable
public ref class TextReader abstract : MarshalByRefObject, IDisposable
public abstract class TextReader : IDisposable
public abstract class TextReader : MarshalByRefObject, IDisposable
[System.Serializable]
public abstract class TextReader : MarshalByRefObject, IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TextReader : MarshalByRefObject, IDisposable
type TextReader = class
    interface IDisposable
type TextReader = class
    inherit MarshalByRefObject
    interface IDisposable
[<System.Serializable>]
type TextReader = class
    inherit MarshalByRefObject
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TextReader = class
    inherit MarshalByRefObject
    interface IDisposable
Public MustInherit Class TextReader
Implements IDisposable
Public MustInherit Class TextReader
Inherits MarshalByRefObject
Implements IDisposable
상속
TextReader
상속
파생
특성
구현

예제

TextReader 클래스는 추상 클래스입니다. 따라서 코드에서 인스턴스화하지 않습니다. 클래스에서 StreamReader 파생 TextReader 하 고 스트림에서 읽기 위한 멤버의 구현을 제공 합니다. 다음 예제에서는 메서드를 사용하여 파일의 모든 문자를 읽는 StreamReader.ReadAsync(Char[], Int32, Int32) 방법을 보여줍니다. 클래스의 StringBuilder instance 문자를 추가하기 전에 각 문자가 문자, 숫자 또는 공백인지 여부를 확인합니다.

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

설명

TextReader는 각각 스트림과 문자열에서 문자를 읽는 및 StringReaderStreamReader 추상 기본 클래스입니다. 이러한 파생 클래스를 사용하여 지정된 문자 범위를 읽기 위한 텍스트 파일을 열거나 기존 스트림을 기반으로 판독기를 만듭니다.

중요

이 형식이 구현 하는 IDisposable 인터페이스입니다. 이 형식에서 파생된 모든 형식을 사용했으면 직접 또는 간접적으로 삭제해야 합니다. 직접 형식의 dispose 호출 해당 Dispose 의 메서드를 try/catch 블록입니다. 삭제 하지 직접, 언어 구문 같은 사용 using (C#에서) 또는 Using (Visual Basic에서는). 자세한 내용은 인터페이스 항목의 삭제 및 "IDisposable을 구현하는 개체 사용" 섹션을 IDisposable 참조하세요.

구현자 참고

파생 클래스는 의 유용한 instance TextReader만들기 위해 및 Read() 메서드를 최소한으로 구현 Peek() 해야 합니다.

생성자

TextReader()

TextReader 클래스의 새 인스턴스를 초기화합니다.

필드

Null

TextReader에 읽을 데이터를 제공하지 않습니다.

메서드

Close()

TextReader를 닫고 TextReader와 관련된 시스템 리소스를 해제합니다.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Dispose()

해당 TextReader 개체에서 사용하는 리소스를 모두 해제합니다.

Dispose(Boolean)

TextReader에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Peek()

문자 소스나 판독기의 상태를 변경하지 않고 다음 문자를 읽습니다. 판독기에서 실제로 읽지 않고 사용 가능한 다음 문자를 반환합니다.

Read()

텍스트 판독기에서 다음 문자를 읽고 문자 위치를 한 문자씩 앞으로 이동합니다.

Read(Char[], Int32, Int32)

현재 판독기에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

Read(Span<Char>)

현재 판독기에서 문자를 읽고, 지정된 버퍼에 씁니다.

ReadAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.

ReadAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.

ReadBlock(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

ReadBlock(Span<Char>)

현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.

ReadBlockAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.

ReadBlockAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.

ReadLine()

텍스트 판독기에서 한 줄의 문자를 읽고 데이터를 문자열로 반환합니다.

ReadLineAsync()

한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

ReadLineAsync(CancellationToken)

한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

ReadToEnd()

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 읽어서 단일 문자열로 반환합니다.

ReadToEndAsync()

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 비동기적으로 읽어서 하나의 문자열로 반환합니다.

ReadToEndAsync(CancellationToken)

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 비동기적으로 읽어서 하나의 문자열로 반환합니다.

Synchronized(TextReader)

지정된 TextReader 주위에 스레드로부터 안전한 래퍼를 만듭니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

이 멤버에 대한 설명은 Dispose()를 참조하세요.

적용 대상

추가 정보