StreamReader 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.
Implementa un oggetto TextReader che legge i caratteri da un flusso di byte in una particolare codifica.
public ref class StreamReader : System::IO::TextReader
public class StreamReader : System.IO.TextReader
[System.Serializable]
public class StreamReader : System.IO.TextReader
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamReader : System.IO.TextReader
type StreamReader = class
inherit TextReader
[<System.Serializable>]
type StreamReader = class
inherit TextReader
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamReader = class
inherit TextReader
Public Class StreamReader
Inherits TextReader
- Ereditarietà
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene utilizzata un'istanza di StreamReader per leggere testo da un file. Il costruttore usato in questo esempio non è supportato per l'uso nelle app di Windows Store.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
}
Imports System.IO
Class Test
Public Shared Sub Main()
Try
' Create an instance of StreamReader to read from a file.
Dim sr As StreamReader = New StreamReader("TestFile.txt")
Dim line As String
' Read and display the lines from the file until the end
' of the file is reached.
Do
line = sr.ReadLine()
Console.WriteLine(Line)
Loop Until line Is Nothing
sr.Close()
Catch E As Exception
' Let the user know what went wrong.
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
End Try
End Sub
End Class
Nell'esempio seguente viene creata un'istanza di un StreamReader oggetto e viene chiamato il ReadAsync relativo metodo per leggere un file in modo asincrono.
using System;
using System.IO;
using System.Threading.Tasks;
class Example
{
static async Task Main()
{
await ReadAndDisplayFilesAsync();
}
static async Task ReadAndDisplayFilesAsync()
{
String filename = "TestFile1.txt";
Char[] buffer;
using (var sr = new StreamReader(filename)) {
buffer = new Char[(int)sr.BaseStream.Length];
await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
}
Console.WriteLine(new String(buffer));
}
}
// The example displays the following output:
// This is the first line of text in a relatively short file.
// This is the second line.
// This is the third line.
// This is the fourth and final line.
Imports System.IO
Imports System.Threading.Tasks
Module Example
Public Sub Main()
ReadAndDisplayFilesAsync()
End Sub
Private Async Sub ReadAndDisplayFilesAsync()
Dim filename As String = "TestFile1.txt"
Dim buffer() As Char
Using sr As New StreamReader(filename)
ReDim buffer(CInt(sr.BaseStream.Length))
Await sr.ReadAsync(buffer, 0, CInt(sr.BaseStream.Length))
End Using
Console.WriteLine(New String(buffer))
End Sub
End Module
' The example displays the following output:
' This is the first line of text in a relatively short file.
' This is the second line.
' This is the third line.
' This is the fourth and final line.
Commenti
StreamReader è progettato per l'input di caratteri in una particolare codifica, mentre la classe è progettata per l'input e l'output Stream dei byte. Utilizzare StreamReader per leggere le righe di informazioni da un file di testo standard.
Importante
Questo tipo implementa l'interfaccia IDisposable . Al termine dell'uso del 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 la sezione "Uso di un oggetto che implementa IDisposable" nell'argomento relativo all'interfaccia IDisposable .
StreamReader per impostazione predefinita, la codifica UTF-8 viene impostata su UTF-8, a meno che non venga specificata diversamente, anziché la tabella codici ANSI per il sistema corrente. UTF-8 gestisce correttamente i caratteri Unicode e fornisce risultati coerenti sulle versioni localizzate del sistema operativo. Se si ottiene la codifica dei caratteri corrente usando la CurrentEncoding proprietà , il valore non è affidabile fino a quando il primo Read metodo non viene eseguito, poiché il rilevamento automatico della codifica non viene eseguito fino alla prima chiamata a un Read metodo.
Per impostazione predefinita, un oggetto StreamReader non è thread-safe. Vedere TextReader.Synchronized per un wrapper thread-safe.
L'overload del Read(Char[], Int32, Int32) metodo e Write(Char[], Int32, Int32) legge e scrive il numero di caratteri specificato dal count parametro . Devono essere distinti da BufferedStream.Read e BufferedStream.Write, che leggono e scrivono il numero di byte specificati dal count parametro . Utilizzare i BufferedStream metodi solo per la lettura e la scrittura di un numero integrale di elementi della matrice di byte.
Annotazioni
Quando si legge da , Streamè più efficiente usare un buffer con le stesse dimensioni del buffer interno del flusso.
Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.
Costruttori
| Nome | Descrizione |
|---|---|
| StreamReader(Stream, Boolean) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato, con l'opzione di rilevamento dei byte order mark specificata. |
| StreamReader(Stream, Encoding, Boolean, Int32, Boolean) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato in base alla codifica dei caratteri specificata, all'opzione di rilevamento dei byte order mark e alle dimensioni del buffer e, facoltativamente, lascia aperto il flusso. |
| StreamReader(Stream, Encoding, Boolean, Int32) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato, con la codifica dei caratteri specificata, l'opzione di rilevamento dei byte order mark e le dimensioni del buffer. |
| StreamReader(Stream, Encoding, Boolean) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato, con la codifica dei caratteri e l'opzione di rilevamento dei byte order mark specificati. |
| StreamReader(Stream, Encoding) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato, con la codifica dei caratteri specificata. |
| StreamReader(Stream) |
Inizializza una nuova istanza della StreamReader classe per il flusso specificato. |
| StreamReader(String, Boolean) |
Inizializza una nuova istanza della StreamReader classe per il nome file specificato, con l'opzione di rilevamento del contrassegno dell'ordine dei byte specificata. |
| StreamReader(String, Encoding, Boolean, FileStreamOptions) |
Inizializza una nuova istanza della StreamReader classe per il percorso del file specificato, con la codifica dei caratteri specificata, l'opzione di rilevamento dei byte order mark e configurata con l'oggetto specificato FileStreamOptions . |
| StreamReader(String, Encoding, Boolean, Int32) |
Inizializza una nuova istanza della StreamReader classe per il nome file specificato, con la codifica dei caratteri specificata, l'opzione di rilevamento dei byte order mark e le dimensioni del buffer. |
| StreamReader(String, Encoding, Boolean) |
Inizializza una nuova istanza della StreamReader classe per il nome file specificato, con la codifica dei caratteri e l'opzione di rilevamento dei byte order mark specificati. |
| StreamReader(String, Encoding) |
Inizializza una nuova istanza della StreamReader classe per il nome file specificato, con la codifica dei caratteri specificata. |
| StreamReader(String, FileStreamOptions) |
Inizializza una nuova istanza della StreamReader classe per il percorso di file specificato, utilizzando la codifica predefinita, abilitando il rilevamento dei contrassegni di ordine dei byte all'inizio del file e configurato con l'oggetto specificato FileStreamOptions . |
| StreamReader(String) |
Inizializza una nuova istanza della StreamReader classe per il nome file specificato. |
Campi
| Nome | Descrizione |
|---|---|
| Null |
Oggetto StreamReader intorno a un flusso vuoto. |
Proprietà
| Nome | Descrizione |
|---|---|
| BaseStream |
Restituisce il flusso sottostante. |
| CurrentEncoding |
Ottiene la codifica dei caratteri corrente usata dall'oggetto corrente StreamReader . |
| EndOfStream |
Ottiene un valore che indica se la posizione corrente del flusso si trova alla fine del flusso. |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude l'oggetto StreamReader e il flusso sottostante e rilascia tutte le risorse di sistema associate al lettore. |
| 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) |
| DiscardBufferedData() |
Cancella il buffer interno. |
| Dispose() |
Rilascia tutte le risorse utilizzate dall'oggetto TextReader . (Ereditato da TextReader) |
| Dispose(Boolean) |
Chiude il flusso sottostante, rilascia le risorse non gestite usate da StreamReadere, 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() |
Obsoleti.
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() |
Obsoleti.
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() |
Restituisce il carattere disponibile successivo, ma non lo utilizza. |
| Read() |
Legge il carattere successivo dal flusso di input e sposta in avanti la posizione del carattere di un carattere. |
| Read(Char[], Int32, Int32) |
Legge un massimo di caratteri specificato dal flusso corrente in un buffer, a partire dall'indice specificato. |
| Read(Span<Char>) |
Legge i caratteri dal flusso corrente in un intervallo. |
| ReadAsync(Char[], Int32, Int32) |
Legge un numero massimo di caratteri specificato dal flusso 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 di caratteri specificato dal flusso corrente e scrive i dati in un buffer, a partire dall'indice specificato. |
| 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. (Ereditato da TextReader) |
| 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 flusso 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 flusso corrente e restituisce i dati come stringa. |
| ReadLineAsync() |
Legge una riga di caratteri in modo asincrono dal flusso corrente e restituisce i dati come stringa. |
| ReadLineAsync(CancellationToken) |
Legge una riga di caratteri in modo asincrono dal flusso corrente e restituisce i dati come stringa. |
| ReadToEnd() |
Legge tutti i caratteri dalla posizione corrente alla fine del flusso. |
| ReadToEndAsync() |
Legge tutti i caratteri dalla posizione corrente alla fine del flusso in modo asincrono e li restituisce come una stringa. |
| ReadToEndAsync(CancellationToken) |
Legge tutti i caratteri dalla posizione corrente alla fine del flusso in modo asincrono e li restituisce come una stringa. |
| 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(). (Ereditato da TextReader) |