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 usata un'istanza di StreamReader per leggere il testo da un file. Il costruttore usato in questo esempio non è supportato per l'uso in App di Windows Store.
using namespace System;
using namespace System::IO;
int main()
{
try
{
// Create an instance of StreamReader to read from a file.
StreamReader^ sr = gcnew StreamReader( "TestFile.txt" );
try
{
String^ line;
// Read and display lines from the file until the end of
// the file is reached.
while ( line = sr->ReadLine() )
{
Console::WriteLine( line );
}
}
finally
{
if ( sr )
delete (IDisposable^)sr;
}
}
catch ( Exception^ e )
{
// Let the user know what went wrong.
Console::WriteLine( "The file could not be read:" );
Console::WriteLine( e->Message );
}
}
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 dei caratteri in una codifica specifica, mentre la classe è progettata per l'input e l'output Stream di byte. Usare StreamReader per leggere le righe di informazioni da un file di testo standard.
Importante
Il tipo implementa l'interfaccia IDisposable. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try
/catch
. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come ad esempio using
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 impostazione predefinita per la codifica UTF-8, a meno che non sia specificata in caso contrario, anziché impostazione predefinita nella 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 finché non dopo il primo Read metodo, poiché la codifica del rilevamento automatico non viene eseguita fino alla prima chiamata a un Read metodo.
Per impostazione predefinita, un StreamReader oggetto non è thread safe. Vedere TextReader.Synchronized per un wrapper thread-safe.
Il Read(Char[], Int32, Int32) metodo e Write(Char[], Int32, Int32) esegue l'overload count
di lettura e scrittura del numero di caratteri specificati dal parametro. Questi elementi devono essere distinti da BufferedStream.Read e BufferedStream.Write, che leggono e scrivono il numero di byte specificati dal count
parametro. Usare i BufferedStream metodi solo per la lettura e la scrittura di un numero integrale di elementi matrice di byte.
Nota
Quando si legge da un Streamoggetto , è più efficiente usare un buffer che corrisponde alla stessa dimensione del buffer interno del flusso.
Per un elenco di attività di I/O comuni, vedere Attività di I/O comuni.
Costruttori
StreamReader(Stream) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato. |
StreamReader(Stream, Boolean) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato, con l'opzione specificata per il rilevamento dei byte order mark. |
StreamReader(Stream, Encoding) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato, con la codifica dei caratteri specificata. |
StreamReader(Stream, Encoding, Boolean) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato, con la codifica dei caratteri e l'opzione per il rilevamento dei byte order mark specificati. |
StreamReader(Stream, Encoding, Boolean, Int32) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato, con la codifica dei caratteri, l'opzione per il rilevamento dei byte order mark e le dimensioni del buffer specificati. |
StreamReader(Stream, Encoding, Boolean, Int32, Boolean) |
Inizializza una nuova istanza della classe StreamReader per il flusso specificato in base alla codifica caratteri, all'opzione per il rilevamento dei byte order mark e alle dimensioni del buffer specificati. Facoltativamente mantiene aperto il flusso. |
StreamReader(String) |
Inizializza una nuova istanza della classe StreamReader per il nome file specificato. |
StreamReader(String, Boolean) |
Inizializza una nuova istanza della classe StreamReader per il nome file specificato, con l'opzione specificata per il rilevamento dei byte order mark. |
StreamReader(String, Encoding) |
Inizializza una nuova istanza della classe StreamReader per il nome file specificato, con la codifica dei caratteri specificata. |
StreamReader(String, Encoding, Boolean) |
Inizializza una nuova istanza della classe StreamReader per il nome file specificato, con la codifica caratteri e l'opzione per il rilevamento dei byte order mark specificati. |
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 contrassegni dell'ordine di byte e configurata con l'oggetto specificato FileStreamOptions . |
StreamReader(String, Encoding, Boolean, Int32) |
Inizializza una nuova istanza della classe StreamReader per il nome file specificato, con la codifica caratteri, l'opzione per il rilevamento dei byte order mark e le dimensioni del buffer specificati. |
StreamReader(String, FileStreamOptions) |
Inizializza una nuova istanza della StreamReader classe per il percorso file specificato, usando la codifica predefinita, abilitando il rilevamento dei contrassegni di ordine di byte all'inizio del file e configurato con l'oggetto specificato FileStreamOptions . |
Campi
Null |
Oggetto StreamReader che include un flusso vuoto. |
Proprietà
BaseStream |
Restituisce il flusso sottostante. |
CurrentEncoding |
Ottiene la codifica caratteri corrente usata dall'oggetto StreamReader corrente. |
EndOfStream |
Ottiene un valore che indica se la posizione corrente del flusso è alla fine del flusso. |
Metodi
Close() |
Chiude l'oggetto StreamReader e il flusso sottostante e rilascia tutte le risorse di sistema associate al lettore. |
Close() |
Chiude l'oggetto TextReader e libera tutte le risorse di sistema associate a |
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
DiscardBufferedData() |
Cancella il buffer interno. |
Dispose() |
Rilascia tutte le risorse usate dall'oggetto TextReader. (Ereditato da TextReader) |
Dispose(Boolean) |
Chiude il flusso sottostante, rilascia le risorse non gestite usate dall'oggetto StreamReader 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() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetType() |
Ottiene l'oggetto 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 dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
Peek() |
Restituisce il carattere successivo disponibile senza usarlo. |
Read() |
Legge il carattere successivo dal flusso di input e fa avanzare di un carattere la posizione del carattere. |
Read(Char[], Int32, Int32) |
Legge un numero massimo specificato di caratteri dal flusso corrente e scrive i dati in un buffer, iniziando dall'indice specificato. |
Read(Span<Char>) |
Legge i caratteri dal flusso corrente in un intervallo. |
Read(Span<Char>) |
Legge i caratteri dal lettore corrente e scrive i dati nel buffer specificato. (Ereditato da TextReader) |
ReadAsync(Char[], Int32, Int32) |
Legge in modo asincrono un numero massimo specificato di caratteri dal flusso corrente e scrive i dati in un buffer, a partire dall'indice specificato. |
ReadAsync(Char[], Int32, Int32) |
Legge un numero massimo specificato di caratteri dal lettore di testo corrente in modo asincrono e scrive i dati in un buffer, a partire dall'indice specificato. (Ereditato da TextReader) |
ReadAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente in un blocco di memoria. |
ReadAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente in un blocco di memoria. (Ereditato da TextReader) |
ReadBlock(Char[], Int32, Int32) |
Legge un numero massimo specificato di caratteri 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. |
ReadBlock(Span<Char>) |
Legge i caratteri dal flusso corrente e scrive i dati in un buffer. (Ereditato da TextReader) |
ReadBlockAsync(Char[], Int32, Int32) |
Legge in modo asincrono un numero massimo specificato di caratteri dal flusso corrente e scrive i dati in un buffer, a partire dall'indice specificato. |
ReadBlockAsync(Char[], Int32, Int32) |
Legge un numero massimo specificato di caratteri dal lettore di testo corrente in modo asincrono e scrive i dati in un buffer, a partire dall'indice specificato. (Ereditato da TextReader) |
ReadBlockAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente e scrive i dati in un buffer. |
ReadBlockAsync(Memory<Char>, CancellationToken) |
Legge in modo asincrono i caratteri dal flusso corrente e scrive i dati in un buffer. (Ereditato da TextReader) |
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() |
Legge una riga di caratteri in modo asincrono e restituisce i dati come stringa. (Ereditato da TextReader) |
ReadLineAsync(CancellationToken) |
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 e restituisce i dati come stringa. (Ereditato da TextReader) |
ReadToEnd() |
Legge tutti i caratteri dalla posizione corrente fino alla fine del flusso. |
ReadToEndAsync() |
Legge tutti i caratteri dalla posizione corrente fino alla fine del flusso in modo asincrono e li restituisce come singola stringa. |
ReadToEndAsync() |
Legge in modo asincrono tutti i caratteri dalla posizione corrente fino alla fine del lettore di testo e li restituisce come singola stringa. (Ereditato da TextReader) |
ReadToEndAsync(CancellationToken) |
Legge tutti i caratteri dalla posizione corrente fino alla fine del flusso in modo asincrono e li restituisce come singola stringa. |
ReadToEndAsync(CancellationToken) |
Legge in modo asincrono tutti i caratteri dalla posizione corrente fino alla fine del lettore di testo e li restituisce come singola stringa. (Ereditato da TextReader) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IDisposable.Dispose() |
Per una descrizione di questo membro, vedere Dispose(). (Ereditato da TextReader) |