TextReader Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
Metody
Close() |
Zamyka i TextReader zwalnia wszystkie zasoby systemowe skojarzone z programem |
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, zaczynając 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 |
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(). |