StreamReader StreamReader StreamReader StreamReader Class

Definición

Implementa un TextReader que lee los caracteres de una secuencia de bytes en una codificación determinada.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
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se usa una instancia de StreamReader para leer texto desde un archivo.The following example uses an instance of StreamReader to read text from a file. El constructor usado en este ejemplo no se admite para su uso en Tienda WindowsWindows Store aplicaciones.The constructor used in this example is not supported for use in Tienda WindowsWindows 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

El ejemplo siguiente crea un StreamReader objeto y llama a su ReadAsync método para leer un archivo de forma asincrónica.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.

Comentarios

StreamReader está diseñado para la entrada de caracteres en una codificación determinada, mientras que la Stream clase está diseñada para bytes de entrada y salida.StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Use StreamReader para leer las líneas de información de un archivo de texto estándar.Use StreamReader for reading lines of information from a standard text file.

Importante

Este tipo implementa la IDisposable interfaz.This type implements the IDisposable interface. Cuando haya terminado de utilizar el tipo, debe deshacerse de él directa o indirectamente.When you have finished using the type, you should dispose of it either directly or indirectly. Para deshacerse del tipo directamente, llame a su Dispose método en un try / catch bloque.To dispose of the type directly, call its Dispose method in a try/catch block. Para deshacerse de él, indirectamente, usar una construcción de lenguaje, como using (en C#) o Using (en Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Para obtener más información, vea la sección "Uso de un objeto que implementa IDisposable" en el IDisposable tema de la interfaz.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReader el valor predeterminado es codificación UTF-8 a menos que se especifique lo contrario, en lugar de utilizar la página de códigos ANSI del sistema actual.StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. UTF-8 controla correctamente los caracteres Unicode y proporciona resultados coherentes en las versiones localizadas del sistema operativo.UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system. Si se produce la codificación de caracteres mediante la CurrentEncoding propiedad, el valor no es confiable hasta después del primer Read método, ya que no se realiza la detección automática de codificación hasta la primera llamada a un Read método.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.

De forma predeterminada, un StreamReader no es segura de subprocesos.By default, a StreamReader is not thread safe. Consulte TextReader.Synchronized para un contenedor seguro para subprocesos.See TextReader.Synchronized for a thread-safe wrapper.

El Read(Char[], Int32, Int32) y Write(Char[], Int32, Int32) sobrecargas del método de lectura y escritura en el número de caracteres especificados por el count parámetro.The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter. Se trata de distinguirse BufferedStream.Read y BufferedStream.Write, que leer y escribir el número de bytes especificado por el count parámetro.These are to be distinguished from BufferedStream.Read and BufferedStream.Write, which read and write the number of bytes specified by the count parameter. Use el BufferedStream métodos sólo para leer y escribir un número entero de byte de elementos de matriz.Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

Nota

Al leer desde un Stream, resulta más eficaz utilizar un búfer que es el mismo tamaño que el búfer interno de la secuencia.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.

Para obtener una lista de tareas de E/S comunes, consulte tareas de E/S comunes.For a list of common I/O tasks, see Common I/O Tasks.

Constructores

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

Inicializa una nueva instancia de la clase StreamReader para el flujo especificado.Initializes a new instance of the StreamReader class for the specified stream.

StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) StreamReader(Stream, Boolean) StreamReader(Stream, Boolean)

Inicializa una nueva instancia de la clase StreamReader para la secuencia especificada, con la opción especificada de detección de marcas de orden de bytes.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)

Inicializa una nueva instancia de la clase StreamReader para la secuencia especificada y con la codificación de caracteres indicada.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)

Inicializa una nueva instancia de la clase StreamReader de la secuencia especificada, con la codificación de caracteres especificada y la opción especificada de detección de marcas de orden de bytes.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)

Inicializa una nueva instancia de la clase StreamReader de la secuencia especificada, con la codificación de caracteres especificada, la opción especificada de detección de marcas de orden de bytes y el tamaño del búfer.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)

Inicializa una nueva instancia de la clase StreamReader de la secuencia especificada basada en la codificación de caracteres especificada, la opción especificada de detección de marcas de orden de bytes y el tamaño del búfer y, opcionalmente, deja abierta la secuencia.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)

Inicializa una nueva instancia de la clase StreamReader para el nombre de archivo especificado.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)

Inicializa una nueva instancia de la clase StreamReader para el nombre de archivo especificado, con la opción especificada de detección de marcas de orden de bytes.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)

Inicializa una nueva instancia de la clase StreamReader para el nombre de archivo especificado y con la codificación de caracteres indicada.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)

Inicializa una nueva instancia de la clase StreamReader del nombre de archivo especificado, con la codificación de caracteres especificada y la opción especificada de detección de marcas de orden de bytes.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)

Inicializa una nueva instancia de la clase StreamReader del nombre de archivo especificado, con la codificación de caracteres especificada, la opción especificada de detección de marcas de orden de bytes y el tamaño del búfer.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.

Campos

Null Null Null Null

Objeto StreamReader en torno a una secuencia vacía.A StreamReader object around an empty stream.

Propiedades

BaseStream BaseStream BaseStream BaseStream

Devuelve la secuencia subyacente.Returns the underlying stream.

CurrentEncoding CurrentEncoding CurrentEncoding CurrentEncoding

Obtiene la codificación de caracteres que actualmente utiliza este objeto StreamReader.Gets the current character encoding that the current StreamReader object is using.

EndOfStream EndOfStream EndOfStream EndOfStream

Obtiene un valor que indica si la actual posición está al final de la secuencia.Gets a value that indicates whether the current stream position is at the end of the stream.

Métodos

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

Cierra el objeto StreamReader y la secuencia subyacente, además de liberar todos los recursos del sistema asociados al lector.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)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto 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()

Borra el búfer interno.Clears the internal buffer.

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

Libera todos los recursos utilizados por el objeto TextReader.Releases all resources used by the TextReader object.

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

Cierra la secuencia subyacente, libera los recursos no administrados que utiliza StreamReader y, de forma opcional, libera los recursos administrados.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 si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

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

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

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

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

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

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

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

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

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

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

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

Devuelve el siguiente carácter disponible pero no lo consume.Returns the next available character but does not consume it.

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

Lee el siguiente carácter de la secuencia de entrada y hace avanzar la posición de los caracteres en un carácter.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)

Lee un máximo especificado de caracteres de la secuencia actual en un búfer, comenzando en el índice especificado.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)

Lee de forma asincrónica un número máximo de caracteres especificado en la secuencia actual y escribe los datos en un búfer, comenzando en el índice especificado.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)

Lee un número máximo de caracteres especificado en la secuencia actual y escribe los datos en un búfer, comenzando en el índice especificado.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)

Lee de forma asincrónica un número máximo de caracteres especificado en la secuencia actual y escribe los datos en un búfer, comenzando en el índice especificado.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()

Lee una línea de caracteres de la secuencia actual y devuelve los datos como una cadena.Reads a line of characters from the current stream and returns the data as a string.

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

Lee de forma asincrónica una línea de caracteres de la secuencia actual y devuelve los datos como una cadena.Reads a line of characters asynchronously from the current stream and returns the data as a string.

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

Lee todos los caracteres desde la posición actual hasta el final de la secuencia.Reads all characters from the current position to the end of the stream.

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

Lee de forma asincrónica todos los caracteres desde la posición actual hasta el final de la secuencia y los devuelve como una cadena.Reads all characters from the current position to the end of the stream asynchronously and returns them as one string.

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

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Implementaciones de interfaz explícitas

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

Para obtener una descripción de este miembro, vea Dispose().For a description of this member, see Dispose().

(Inherited from TextReader)

Se aplica a

Consulte también: