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 в экземпляр класса.

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 — абстрактный базовый класс StreamReader и StringReader, который считывает символы из потоков и строк соответственно. Используйте эти производные классы для открытия текстового файла для чтения заданного диапазона символов или создания средства чтения на основе существующего потока.

Important

Этот тип реализует IDisposable интерфейс. Завершив использование любого типа, наследуемого от этого типа, его следует удалить напрямую или косвенно. Чтобы удалить тип напрямую, вызовите его Dispose метод в блоке try/catch . Чтобы удалить его косвенно, используйте конструкцию языка, например using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе Dispose и разделе "Использование объекта, реализующего IDisposable" в IDisposable разделе интерфейса.

Примечания для тех, кто реализует этот метод

Производный класс должен минимально реализовать Peek()Read() и методы, чтобы сделать полезный экземпляр TextReader.

Конструкторы

Имя Описание
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().

Применяется к

См. также раздел