Поделиться через


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

Важно!

Этот тип реализует интерфейс 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().

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

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