TextReader Třída

Definice

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 TextReader dat pro čtení.

Metody

Close()

TextReader Zavře a uvolní všechny systémové prostředky přidružené k TextReader.

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 TextReadersouboru .

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().

Platí pro

Viz také