TextReader Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje čtenáře, který může číst sekvenční řadu znaků.
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
- Dědičnost
-
TextReader
- Dědičnost
- Odvozené
- Atributy
- Implementuje
Příklady
Třída TextReader je abstraktní třída. Proto se v kódu nevytvořuje instance. Třída StreamReader je odvozena z TextReader a poskytuje implementace členů pro čtení z datového proudu. Následující příklad ukazuje, jak číst všechny znaky v souboru pomocí StreamReader.ReadAsync(Char[], Int32, Int32) metody . Před přidáním znaku do instance třídy zkontroluje, zda je každý znak písmenem, číslicí nebo prázdnými StringBuilder znaky.
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
Poznámky
TextReader je abstraktní základní třída a StreamReaderStringReader, která čte znaky z datových proudů a řetězců v uvedeném pořadí. Tyto odvozené třídy slouží k otevření textového souboru pro čtení zadaného rozsahu znaků nebo k vytvoření čtečky na základě existujícího datového proudu.
Důležité
Tento typ implementuje IDisposable rozhraní . Po dokončení používání jakéhokoli typu, který je odvozen z tohoto typu, byste ho měli odstranit přímo nebo nepřímo. Chcete-li odstranit typ přímo, zavolejte jeho Dispose metodu try
/catch
v bloku. Pokud ho chcete odstranit nepřímo, použijte konstruktor jazyka, jako using
je (v jazyce C#) nebo Using
(v jazyce Visual Basic). Další informace najdete v tématu Dispose a v části "Použití objektu, který implementuje IDisposable" v IDisposable tématu rozhraní.
Poznámky pro implementátory
Odvozená třída musí minimálně implementovat Peek() metody a Read() , aby byla užitečná instance .TextReader
Konstruktory
TextReader() |
Inicializuje novou instanci TextReader třídy . |
Pole
Null |
Poskytuje bez |
Metody
Close() |
TextReader Zavře a uvolní všechny systémové prostředky přidružené k |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
Dispose() |
Uvolní všechny prostředky používané objektem TextReader . |
Dispose(Boolean) |
Uvolní nespravované prostředky používané nástrojem TextReader a volitelně uvolní spravované prostředky. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
Peek() |
Přečte další znak beze změny stavu čtenáře nebo zdroje znaků. Vrátí další dostupný znak, aniž by ho čtenář skutečně četl. |
Read() |
Přečte další znak ze čtečky textu a posune pozici znaku o jeden znak. |
Read(Char[], Int32, Int32) |
Přečte zadaný maximální počet znaků od aktuálního čtenáře a zapíše data do vyrovnávací paměti počínaje zadaným indexem. |
Read(Span<Char>) |
Přečte znaky od aktuálního čtenáře a zapíše data do zadané vyrovnávací paměti. |
ReadAsync(Char[], Int32, Int32) |
Přečte asynchronně zadaný maximální počet znaků z aktuální čtečky textu a zapíše data do vyrovnávací paměti počínaje zadaným indexem. |
ReadAsync(Memory<Char>, CancellationToken) |
Asynchronně přečte znaky z aktuálního datového proudu do bloku paměti. |
ReadBlock(Char[], Int32, Int32) |
Přečte zadaný maximální počet znaků z aktuální čtečky textu a zapíše data do vyrovnávací paměti počínaje zadaným indexem. |
ReadBlock(Span<Char>) |
Načte znaky z aktuálního datového proudu a zapíše data do vyrovnávací paměti. |
ReadBlockAsync(Char[], Int32, Int32) |
Přečte asynchronně zadaný maximální počet znaků z aktuální čtečky textu a zapíše data do vyrovnávací paměti počínaje zadaným indexem. |
ReadBlockAsync(Memory<Char>, CancellationToken) |
Asynchronně čte znaky z aktuálního datového proudu a zapisuje data do vyrovnávací paměti. |
ReadLine() |
Přečte řádek znaků ze čtečky textu a vrátí data jako řetězec. |
ReadLineAsync() |
Přečte řádek znaků asynchronně a vrátí data jako řetězec. |
ReadLineAsync(CancellationToken) |
Přečte řádek znaků asynchronně a vrátí data jako řetězec. |
ReadToEnd() |
Přečte všechny znaky od aktuální pozice do konce čtečky textu a vrátí je jako jeden řetězec. |
ReadToEndAsync() |
Přečte asynchronně všechny znaky od aktuální pozice do konce čtečky textu a vrátí je jako jeden řetězec. |
ReadToEndAsync(CancellationToken) |
Přečte asynchronně všechny znaky od aktuální pozice do konce čtečky textu a vrátí je jako jeden řetězec. |
Synchronized(TextReader) |
Vytvoří obálku bezpečnou pro přístup z více vláken kolem zadaného |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Popis tohoto člena najdete v tématu Dispose(). |