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 |
Предоставляет |
Методы
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(). |