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 |
|
Методы
| Имя | Описание |
|---|---|
| Close() |
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) |
Создает потокобезопасную оболочку вокруг указанного |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Описание этого элемента см. в разделе Dispose(). |