TextReader Класс

Определение

Представляет средство чтения, позволяющее считывать последовательные наборы символов.Represents a reader that can read a sequential series of characters.

public ref class TextReader abstract : MarshalByRefObject, IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class TextReader : MarshalByRefObject, IDisposable
type TextReader = class
    inherit MarshalByRefObject
    interface IDisposable
Public MustInherit Class TextReader
Inherits MarshalByRefObject
Implements IDisposable
Наследование
Производный
Атрибуты
Реализации

Примеры

Класс TextReader является абстрактным.The TextReader class is an abstract class. Следовательно, в коде экземпляр этого объекта не создается.Therefore, you do not instantiate it in your code. Класс StreamReader является производным от TextReader и предоставляет реализации членов для чтения из потока.The StreamReader class derives from TextReader and provides implementations of the members for reading from a stream. В следующем примере показано, как считать все символы в файле с помощью метода StreamReader.ReadAsync(Char[], Int32, Int32).The following example shows how to read all the characters in a file by using the StreamReader.ReadAsync(Char[], Int32, Int32) method. Он проверяет, является ли каждый символ буквой, цифрой или пробелом перед добавлением символа в экземпляр класса StringBuilder.It checks whether each character is a letter, digit, or white space before adding the character to an instance of the StringBuilder class.

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, который считывает символы из потоков и строк соответственно.TextReader is the abstract base class of StreamReader and StringReader, which read characters from streams and strings, respectively. Используйте эти производные классы, чтобы открыть текстовый файл для чтения указанного диапазона символов или для создания модуля чтения на основе существующего потока.Use these derived classes to open a text file for reading a specified range of characters, or to create a reader based on an existing stream.

Важно!

Этот тип реализует интерфейс IDisposable.This type implements the IDisposable interface. После завершения использования любого типа, производного от этого типа, следует удалить его прямо или косвенно.When you have finished using any type that derives from this type, you should dispose of it either directly or indirectly. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using (в C#) или Using (в Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Дополнительные сведения см. в разделе Dispose и "использование объекта, реализующего IDisposable" раздела IDisposable Interface.For more information, see Dispose and the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

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

Производный класс должен как минимум реализовать методы Peek() и Read(), чтобы сделать полезный экземпляр TextReader.A derived class must minimally implement the Peek() and Read() methods to make a useful instance of TextReader.

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

TextReader()

Инициализирует новый экземпляр класса TextReader.Initializes a new instance of the TextReader class.

Поля

Null

Предоставляет TextReader без данных, доступных для чтения.Provides a TextReader with no data to read from.

Методы

Close()

Закрывает TextReader и освобождает все системные ресурсы, связанные с TextReader.Closes the TextReader and releases any system resources associated with the TextReader.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, используемые объектом TextReader.Releases all resources used by the TextReader object.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом TextReader, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the TextReader and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
Peek()

Выполняет чтение следующего символа, не изменяя состояние средства чтения или источника символа.Reads the next character without changing the state of the reader or the character source. Возвращает следующий доступный символ, фактически не считывая его из средства чтения.Returns the next available character without actually reading it from the reader.

Read()

Выполняет чтение следующего символа из средства чтения текста и перемещает положение символа на одну позицию вперед.Reads the next character from the text reader and advances the character position by one character.

Read(Char[], Int32, Int32)

Считывает указанное максимальное количество символов из текущего средства чтения и записывает данные в буфер, начиная с заданного индекса.Reads a specified maximum number of characters from the current reader and writes the data to a buffer, beginning at the specified index.

Read(Span<Char>)

Считывает символы из текущего потока чтения и записывает данные в указанный буфер.Reads the characters from the current reader and writes the data to the specified buffer.

ReadAsync(Char[], Int32, Int32)

Асинхронно считывает указанное максимальное количество символов из текущего средства чтения текста и записывает данные в буфер, начиная с заданного индекса.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Memory<Char>, CancellationToken)

Считывает символы из текущего потока в блок памяти в асинхронном режиме.Asynchronously reads the characters from the current stream into a memory block.

ReadBlock(Char[], Int32, Int32)

Считывает указанное максимальное количество символов из текущего средства чтения текста и записывает данные в буфер, начиная с заданного индекса.Reads a specified maximum number of characters from the current text reader and writes the data to a buffer, beginning at the specified index.

ReadBlock(Span<Char>)

Считывает символы из текущего потока и записывает данные в буфер.Reads the characters from the current stream and writes the data to a buffer.

ReadBlockAsync(Char[], Int32, Int32)

Асинхронно считывает указанное максимальное количество символов из текущего средства чтения текста и записывает данные в буфер, начиная с заданного индекса.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

ReadBlockAsync(Memory<Char>, CancellationToken)

Считывает символы из текущего потока и записывает данные в буфер в асинхронном режиме.Asynchronously reads the characters from the current stream and writes the data to a buffer.

ReadLine()

Выполняет чтение строки символов из средства чтения текста и возвращает данные в виде строки.Reads a line of characters from the text reader and returns the data as a string.

ReadLineAsync()

Асинхронно выполняет чтение строки символов и возвращает данные в виде строки.Reads a line of characters asynchronously and returns the data as a string.

ReadToEnd()

Считывает все символы, начиная с текущей позиции до конца средства чтения текста, и возвращает их в виде одной строки.Reads all characters from the current position to the end of the text reader and returns them as one string.

ReadToEndAsync()

Асинхронно считывает все символы, начиная с текущей позиции до конца средства чтения текста, и возвращает их в виде одной строки.Reads all characters from the current position to the end of the text reader asynchronously and returns them as one string.

Synchronized(TextReader)

Создает потокобезопасную оболочку для указанного объекта TextReader.Creates a thread-safe wrapper around the specified TextReader.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

IDisposable.Dispose()

Описание этого члена см. в разделе Dispose().For a description of this member, see Dispose().

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

Дополнительно