TextReader Klasa

Definicja

Reprezentuje czytelnika, który może odczytać sekwencyjną serię znaków.

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
Dziedziczenie
TextReader
Dziedziczenie
Pochodne
Atrybuty
Implementuje

Przykłady

Klasa TextReader jest abstrakcyjną klasą. W związku z tym, nie tworzy się obiektu w kodzie. Klasa StreamReader pochodzi z TextReader klasy i udostępnia implementacje składowych do odczytu ze strumienia. W poniższym przykładzie pokazano, jak odczytać wszystkie znaki w pliku przy użyciu StreamReader.ReadAsync(Char[], Int32, Int32) metody . Sprawdza, czy każdy znak jest literą, cyfrą lub białym znakiem przed dodaniem znaku do wystąpienia StringBuilder klasy.

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

Uwagi

TextReader jest abstrakcyjną klasą bazową i StreamReaderStringReader, która odczytuje odpowiednio znaki ze strumieni i ciągów. Użyj tych klas pochodnych, aby otworzyć plik tekstowy do odczytu określonego zakresu znaków lub utworzyć czytnik na podstawie istniejącego strumienia.

Ważne

Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z dowolnego typu pochodzącego z tego typu należy usunąć go bezpośrednio lub pośrednio. Aby bezpośrednio usunąć typ, wywołaj jego Dispose metodę try/catch w bloku. Aby usunąć go pośrednio, użyj konstrukcji języka, takiej jak using (w języku C#) lub Using (w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję Dispose i "Using an Object that Implements IDisposable" w temacie interfejsu IDisposable .

Uwagi dotyczące implementowania

Klasa pochodna musi minimalnie zaimplementować Peek() metody i Read() , aby utworzyć przydatne wystąpienie klasy TextReader.

Konstruktory

TextReader()

Inicjuje nowe wystąpienie klasy TextReader.

Pola

Null

Udostępnia element TextReader bez danych do odczytania.

Metody

Close()

Zamyka i TextReader zwalnia wszystkie zasoby systemowe skojarzone z programem TextReader.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez TextReader obiekt .

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element TextReader i opcjonalnie zwalnia zasoby zarządzane.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
Peek()

Odczytuje następny znak bez zmiany stanu czytnika lub źródła znaków. Zwraca następny dostępny znak bez faktycznego odczytania go z czytnika.

Read()

Odczytuje następny znak z czytnika tekstu i rozwija położenie znaku o jeden znak.

Read(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika i zapisuje dane w buforze, począwszy od określonego indeksu.

Read(Span<Char>)

Odczytuje znaki z bieżącego czytnika i zapisuje dane w określonym buforze.

ReadAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu asynchronicznie i zapisuje dane w buforze, począwszy od określonego indeksu.

ReadAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia do bloku pamięci.

ReadBlock(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu i zapisuje dane w buforze, zaczynając od określonego indeksu.

ReadBlock(Span<Char>)

Odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

ReadBlockAsync(Char[], Int32, Int32)

Odczytuje określoną maksymalną liczbę znaków z bieżącego czytnika tekstu asynchronicznie i zapisuje dane w buforze, począwszy od określonego indeksu.

ReadBlockAsync(Memory<Char>, CancellationToken)

Asynchronicznie odczytuje znaki z bieżącego strumienia i zapisuje dane w buforze.

ReadLine()

Odczytuje wiersz znaków z czytnika tekstu i zwraca dane jako ciąg.

ReadLineAsync()

Odczytuje wiersz znaków asynchronicznie i zwraca dane jako ciąg.

ReadLineAsync(CancellationToken)

Odczytuje wiersz znaków asynchronicznie i zwraca dane jako ciąg.

ReadToEnd()

Odczytuje wszystkie znaki z bieżącego położenia na końcu czytnika tekstu i zwraca je jako jeden ciąg.

ReadToEndAsync()

Odczytuje wszystkie znaki z bieżącego położenia na końcu czytnika tekstu asynchronicznie i zwraca je jako jeden ciąg.

ReadToEndAsync(CancellationToken)

Odczytuje wszystkie znaki z bieżącego położenia na końcu czytnika tekstu asynchronicznie i zwraca je jako jeden ciąg.

Synchronized(TextReader)

Tworzy bezpieczną wątkowo otokę wokół określonego TextReaderelementu .

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Aby uzyskać opis tego członka, zobacz Dispose().

Dotyczy

Zobacz też