StreamReader StreamReader StreamReader StreamReader Class

Definizione

Implementa un oggetto TextReader che legge i caratteri da un flusso di byte in una particolare codifica.Implements a TextReader that reads characters from a byte stream in a particular encoding.

public ref class StreamReader : System::IO::TextReader
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class StreamReader : System.IO.TextReader
type StreamReader = class
    inherit TextReader
Public Class StreamReader
Inherits TextReader
Ereditarietà
Attributi

Esempi

L'esempio seguente usa un'istanza di StreamReader leggere testo da un file.The following example uses an instance of StreamReader to read text from a file. Il costruttore usato in questo esempio non è supportato per l'uso in Windows StoreWindows Store app.The constructor used in this example is not supported for use in Windows StoreWindows Store Apps.

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
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 crea una StreamReader oggetto e chiama relativo ReadAsync metodo per leggere un file in modo asincrono.The following example instantiates a StreamReader object and calls its ReadAsync method to read a file asynchronously.

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
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 codifica particolare, mentre il Stream classe è progettata per byte di input e output.StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Usare StreamReader per leggere le righe di informazioni da un file di testo standard.Use StreamReader for reading lines of information from a standard text file.

Importante

Questo tipo implementa la IDisposable interfaccia.This type implements the IDisposable interface. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente.When you have finished using the type, you should dispose of it either directly or indirectly. Per eliminare il tipo direttamente, chiamare relativi Dispose metodo in un try / catch blocco.To dispose of the type directly, call its Dispose method in a try/catch block. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come ad esempio using in C# o Using in Visual Basic.To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Per altre informazioni, vedere la sezione "Utilizzo di oggetti che implementano IDisposable" nel IDisposable argomento relativo all'interfaccia.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReader il valore predefinito è la codifica UTF-8 se non specificato diversamente, anziché utilizzando per impostazione predefinita alla tabella codici ANSI per il sistema corrente.StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. UTF-8 gestisce correttamente i caratteri Unicode e fornisce risultati coerenti nelle versioni localizzate del sistema operativo.UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system. Se si ottiene la codifica dei caratteri corrente usando il CurrentEncoding proprietà, il valore non è affidabile fino a dopo il primo Read metodo, poiché il rilevamento automatico della codifica non è completo fino alla prima chiamata a un Read (metodo).If you get the current character encoding using the CurrentEncoding property, the value is not reliable until after the first Read method, since encoding auto detection is not done until the first call to a Read method.

Per impostazione predefinita, un StreamReader non è thread-safe.By default, a StreamReader is not thread safe. Vedere TextReader.Synchronized per un wrapper thread-safe.See TextReader.Synchronized for a thread-safe wrapper.

Il Read(Char[], Int32, Int32) e Write(Char[], Int32, Int32) overload del metodo leggere e scrivere il numero di caratteri specificato da di count parametro.The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter. Questi devono essere distinti dagli BufferedStream.Read e BufferedStream.Write, che leggono e scrivono il numero di byte specificato da di count parametro.These are to be distinguished from BufferedStream.Read and BufferedStream.Write, which read and write the number of bytes specified by the count parameter. Usare il BufferedStream metodi solo per la lettura e scrittura di un numero integrale di byte gli elementi della matrice.Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

Nota

Durante la lettura da un Stream, è preferibile usare un buffer che è la stessa dimensione del buffer interno del flusso.When reading from a Stream, it is more efficient to use a buffer that is the same size as the internal buffer of the stream.

Per un elenco delle attività dei / o comuni, vedere attività dei / o comuni.For a list of common I/O tasks, see Common I/O Tasks.

Costruttori

StreamReader(Stream) StreamReader(Stream) StreamReader(Stream) StreamReader(Stream)

Inizializza una nuova istanza della classe StreamReader per il flusso specificato.Initializes a new instance of the StreamReader class for the specified stream.

StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) 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.Initializes a new instance of the StreamReader class for the specified stream, with the specified byte order mark detection option.

StreamReader(Stream, Encoding) StreamReader(Stream, Encoding) StreamReader(Stream, Encoding) StreamReader(Stream, Encoding)

Inizializza una nuova istanza della classe StreamReader per il flusso specificato, con la codifica dei caratteri specificata.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding.

StreamReader(Stream, Encoding, Boolean) StreamReader(Stream, Encoding, Boolean) StreamReader(Stream, Encoding, Boolean) 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.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding and byte order mark detection option.

StreamReader(Stream, Encoding, Boolean, Int32) StreamReader(Stream, Encoding, Boolean, Int32) StreamReader(Stream, Encoding, Boolean, Int32) 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.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding, byte order mark detection option, and buffer size.

StreamReader(Stream, Encoding, Boolean, Int32, Boolean) StreamReader(Stream, Encoding, Boolean, Int32, Boolean) StreamReader(Stream, Encoding, Boolean, Int32, Boolean) 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.Initializes a new instance of the StreamReader class for the specified stream based on the specified character encoding, byte order mark detection option, and buffer size, and optionally leaves the stream open.

StreamReader(String) StreamReader(String) StreamReader(String) StreamReader(String)

Inizializza una nuova istanza della classe StreamReader per il nome file specificato.Initializes a new instance of the StreamReader class for the specified file name.

StreamReader(String, Boolean) StreamReader(String, Boolean) StreamReader(String, Boolean) 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.Initializes a new instance of the StreamReader class for the specified file name, with the specified byte order mark detection option.

StreamReader(String, Encoding) StreamReader(String, Encoding) StreamReader(String, Encoding) StreamReader(String, Encoding)

Inizializza una nuova istanza della classe StreamReader per il nome file specificato, con la codifica dei caratteri specificata.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding.

StreamReader(String, Encoding, Boolean) StreamReader(String, Encoding, Boolean) StreamReader(String, Encoding, Boolean) 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.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding and byte order mark detection option.

StreamReader(String, Encoding, Boolean, Int32) StreamReader(String, Encoding, Boolean, Int32) StreamReader(String, Encoding, Boolean, Int32) 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.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding, byte order mark detection option, and buffer size.

Campi

Null Null Null Null

Oggetto StreamReader che include un flusso vuoto.A StreamReader object around an empty stream.

Proprietà

BaseStream BaseStream BaseStream BaseStream

Restituisce il flusso sottostante.Returns the underlying stream.

CurrentEncoding CurrentEncoding CurrentEncoding CurrentEncoding

Ottiene la codifica caratteri corrente usata dall'oggetto StreamReader corrente.Gets the current character encoding that the current StreamReader object is using.

EndOfStream EndOfStream EndOfStream EndOfStream

Ottiene un valore che indica se la posizione corrente del flusso è alla fine del flusso.Gets a value that indicates whether the current stream position is at the end of the stream.

Metodi

Close() Close() Close() Close()

Chiude l'oggetto StreamReader e il flusso sottostante e rilascia tutte le risorse di sistema associate al lettore.Closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) 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.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
DiscardBufferedData() DiscardBufferedData() DiscardBufferedData() DiscardBufferedData()

Cancella il buffer interno.Clears the internal buffer.

Dispose() Dispose() Dispose() Dispose()

Rilascia tutte le risorse usate dall'oggetto TextReader.Releases all resources used by the TextReader object.

(Inherited from TextReader)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Chiude il flusso sottostante, rilascia le risorse non gestite usate dall'oggetto StreamReader e, facoltativamente, rilascia le risorse gestite.Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Peek() Peek() Peek() Peek()

Restituisce il carattere successivo disponibile senza usarlo.Returns the next available character but does not consume it.

Read() Read() Read() Read()

Legge il carattere successivo dal flusso di input e fa avanzare di un carattere la posizione del carattere.Reads the next character from the input stream and advances the character position by one character.

Read(Char[], Int32, Int32) Read(Char[], Int32, Int32) Read(Char[], Int32, Int32) 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.Reads a specified maximum of characters from the current stream into a buffer, beginning at the specified index.

Read(Span<Char>) Read(Span<Char>) Read(Span<Char>) Read(Span<Char>)
ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) ReadAsync(Char[], Int32, Int32) 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.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken) ReadAsync(Memory<Char>, CancellationToken)
ReadBlock(Char[], Int32, Int32) ReadBlock(Char[], Int32, Int32) ReadBlock(Char[], Int32, Int32) 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.Reads a specified maximum number of characters from the current stream and writes the data to a buffer, beginning at the specified index.

ReadBlock(Span<Char>) ReadBlock(Span<Char>) ReadBlock(Span<Char>) ReadBlock(Span<Char>)
ReadBlockAsync(Char[], Int32, Int32) ReadBlockAsync(Char[], Int32, Int32) ReadBlockAsync(Char[], Int32, Int32) 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.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken) ReadBlockAsync(Memory<Char>, CancellationToken)
ReadLine() ReadLine() ReadLine() ReadLine()

Legge una riga di caratteri dal flusso corrente e restituisce i dati come stringa.Reads a line of characters from the current stream and returns the data as a string.

ReadLineAsync() ReadLineAsync() ReadLineAsync() ReadLineAsync()

Legge una riga di caratteri in modo asincrono dal flusso corrente e restituisce i dati come stringa.Reads a line of characters asynchronously from the current stream and returns the data as a string.

ReadToEnd() ReadToEnd() ReadToEnd() ReadToEnd()

Legge tutti i caratteri dalla posizione corrente fino alla fine del flusso.Reads all characters from the current position to the end of the stream.

ReadToEndAsync() ReadToEndAsync() ReadToEndAsync() ReadToEndAsync()

Legge tutti i caratteri dalla posizione corrente fino alla fine del flusso in modo asincrono e li restituisce come singola stringa.Reads all characters from the current position to the end of the stream asynchronously and returns them as one string.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Per una descrizione di questo membro, vedere Dispose().For a description of this member, see Dispose().

(Inherited from TextReader)

Si applica a

Vedi anche