TextReader Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un lettore in grado di leggere una serie sequenziale di caratteri.
public ref class TextReader abstract : IDisposable
public ref class TextReader abstract : MarshalByRefObject, IDisposable
public abstract class TextReader : IDisposable
[System.Serializable]
public abstract class TextReader : MarshalByRefObject, IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TextReader : MarshalByRefObject, IDisposable
public abstract class TextReader : MarshalByRefObject, IDisposable
type TextReader = class
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
type TextReader = class
inherit MarshalByRefObject
interface IDisposable
Public MustInherit Class TextReader
Implements IDisposable
Public MustInherit Class TextReader
Inherits MarshalByRefObject
Implements IDisposable
- Ereditarietà
-
TextReader
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Esempio
La TextReader classe è una classe astratta. Di conseguenza, non è necessario crearne un'istanza nel codice. La StreamReader classe deriva da TextReader e fornisce implementazioni dei membri per la lettura da un flusso. Nell'esempio seguente viene illustrato come leggere tutti i caratteri in un file usando il StreamReader.ReadAsync(Char[], Int32, Int32) metodo . Verifica se ogni carattere è una lettera, una cifra o uno spazio vuoto prima di aggiungere il carattere a un'istanza della StringBuilder classe .
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
Commenti
TextReader è la classe base astratta di StreamReader e StringReader, che legge rispettivamente i caratteri dai flussi e dalle stringhe. Utilizzare queste classi derivate per aprire un file di testo per la lettura di un intervallo di caratteri specificato o per creare un lettore basato su un flusso esistente.
Importante
Questo tipo implementa l'interfaccia IDisposable . Al termine dell'uso di qualsiasi tipo che deriva da questo tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il Dispose relativo metodo in un try/catch blocco. Per eliminarlo indirettamente, usare un costrutto del linguaggio, ad using esempio (in C#) o Using (in Visual Basic). Per altre informazioni, vedere Dispose e la sezione "Using an Object that Implements IDisposable" nell'argomento relativo all'interfaccia IDisposable .
Note per gli implementatori
Una classe derivata deve implementare in modo minimo i Peek() metodi e Read() per rendere un'istanza utile di TextReader.
Costruttori
| Nome | Descrizione |
|---|---|
| TextReader() |
Inizializza una nuova istanza della classe TextReader. |
Campi
| Nome | Descrizione |
|---|---|
| Null |
Fornisce un oggetto |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude e rilascia tutte le TextReader risorse di sistema associate all'oggetto |
| CreateObjRef(Type) |
Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject) |
| Dispose() |
Rilascia tutte le risorse utilizzate dall'oggetto TextReader . |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da TextReader e, facoltativamente, rilascia le risorse gestite. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetLifetimeService() |
Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| InitializeLifetimeService() |
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficiale dell'oggetto corrente MarshalByRefObject . (Ereditato da MarshalByRefObject) |
| Peek() |
Legge il carattere successivo senza modificare lo stato del lettore o dell'origine del carattere. Restituisce il carattere disponibile successivo senza leggerlo dal lettore. |
| Read() |
Legge il carattere successivo dal lettore di testo e sposta in avanti la posizione del carattere di un carattere. |
| Read(Char[], Int32, Int32) |
Legge un numero massimo di caratteri specificato dal lettore corrente e scrive i dati in un buffer, a partire dall'indice specificato. |
| Read(Span<Char>) |
Legge i caratteri dal lettore corrente e scrive i dati nel buffer specificato. |
| ReadAsync(Char[], Int32, Int32) |
Legge un numero massimo di caratteri specificato dal lettore di testo corrente in modo asincrono e scrive i dati in un buffer, a partire dall'indice specificato. |
| ReadAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente in un blocco di memoria. |
| ReadBlock(Char[], Int32, Int32) |
Legge un numero massimo specificato di caratteri dal lettore di testo corrente e scrive i dati in un buffer, a partire dall'indice specificato. |
| ReadBlock(Span<Char>) |
Legge i caratteri dal flusso corrente e scrive i dati in un buffer. |
| ReadBlockAsync(Char[], Int32, Int32) |
Legge un numero massimo di caratteri specificato dal lettore di testo corrente in modo asincrono e scrive i dati in un buffer, a partire dall'indice specificato. |
| ReadBlockAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente e scrive i dati in un buffer. |
| ReadLine() |
Legge una riga di caratteri dal lettore di testo e restituisce i dati come stringa. |
| ReadLineAsync() |
Legge una riga di caratteri in modo asincrono e restituisce i dati come stringa. |
| ReadToEnd() |
Legge tutti i caratteri dalla posizione corrente alla fine del lettore di testo e li restituisce come una stringa. |
| ReadToEndAsync() |
Legge tutti i caratteri dalla posizione corrente alla fine del lettore di testo in modo asincrono e li restituisce come una stringa. |
| Synchronized(TextReader) |
Crea un wrapper thread-safe intorno all'oggetto specificato |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDisposable.Dispose() |
Per una descrizione di questo membro, vedere Dispose(). |