StreamReader Clase

Definición

Implementa un TextReader que lee los caracteres de una secuencia de bytes en una codificación determinada.

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
Herencia
StreamReader
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se usa una instancia de StreamReader para leer texto de un archivo. El constructor usado en este ejemplo no se admite para su uso en aplicaciones de la Tienda Windows.

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

En el ejemplo siguiente se crea una instancia de un StreamReader objeto y se llama a su ReadAsync método para leer un archivo de forma asincrónica.

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.

Comentarios

StreamReader está diseñado para la entrada de caracteres en una codificación determinada, mientras que la Stream clase está diseñada para la entrada y salida de bytes. Se usa StreamReader para leer líneas de información de un archivo de texto estándar.

Importante

Este tipo implementa la interfaz IDisposable. Cuando haya terminado de utilizar el tipo, debe desecharlo directa o indirectamente. Para eliminar el tipo directamente, llame a su método Dispose en un bloque try/catch. Para deshacerse de él indirectamente, use una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para más información, vea la sección "Uso de objetos que implementan IDisposable" en el tema de la interfaz IDisposable.

StreamReader el valor predeterminado es la codificación UTF-8, a menos que se especifique lo contrario, en lugar de establecer de forma predeterminada en la página de códigos ANSI para el sistema actual. UTF-8 controla correctamente los caracteres Unicode y proporciona resultados coherentes en las versiones localizadas del sistema operativo. Si obtiene la codificación de caracteres actual mediante la CurrentEncoding propiedad , el valor no es confiable hasta después del primer Read método, ya que la detección automática de codificación no se realiza hasta la primera llamada a un Read método.

De forma predeterminada, un StreamReader no es seguro para subprocesos. Consulte TextReader.Synchronized para obtener un contenedor seguro para subprocesos.

Las Read(Char[], Int32, Int32) sobrecargas de método y Write(Char[], Int32, Int32) leen y escriben el número de caracteres especificados por el count parámetro . Se distinguirán de BufferedStream.Read y BufferedStream.Write, que leen y escriben el número de bytes especificados por el count parámetro . Use los BufferedStream métodos solo para leer y escribir un número entero de elementos de matriz de bytes.

Nota

Al leer desde , Streames más eficaz usar un búfer con el mismo tamaño que el búfer interno de la secuencia.

Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.

Constructores

StreamReader(Stream)

Inicializa una nueva instancia de la clase StreamReader para el flujo especificado.

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.

StreamReader(Stream, Encoding)

Inicializa una nueva instancia de la clase StreamReader para la secuencia especificada y con la codificación de caracteres indicada.

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.

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.

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.

StreamReader(String)

Inicializa una nueva instancia de la clase StreamReader para el nombre de archivo especificado.

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.

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.

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.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Inicializa una nueva instancia de la StreamReader clase para la ruta de acceso de archivo especificada, con la codificación de caracteres especificada, la opción de detección de marcas de orden de bytes y configurada con el objeto especificado FileStreamOptions .

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.

StreamReader(String, FileStreamOptions)

Inicializa una nueva instancia de la StreamReader clase para la ruta de acceso de archivo especificada, utilizando la codificación predeterminada, habilitando la detección de marcas de orden de bytes al principio del archivo y configuradas con el objeto especificado FileStreamOptions .

Campos

Null

Objeto StreamReader en torno a una secuencia vacía.

Propiedades

BaseStream

Devuelve la secuencia subyacente.

CurrentEncoding

Obtiene la codificación de caracteres que actualmente utiliza este objeto StreamReader.

EndOfStream

Obtiene un valor que indica si la actual posición está al final de la secuencia.

Métodos

Close()

Cierra el objeto StreamReader y la secuencia subyacente, además de liberar todos los recursos del sistema asociados al lector.

Close()

Cierra el TextReader y libera todos los recursos del sistema asociados a TextReader.

(Heredado de TextReader)
CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
DiscardBufferedData()

Borra el búfer interno.

Dispose()

Libera todos los recursos utilizados por el objeto TextReader.

(Heredado de TextReader)
Dispose(Boolean)

Cierra la secuencia subyacente, libera los recursos no administrados que utiliza StreamReader y, de forma opcional, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
Peek()

Devuelve el siguiente carácter disponible pero no lo consume.

Read()

Lee el siguiente carácter de la secuencia de entrada y hace avanzar la posición de los caracteres en un carácter.

Read(Char[], Int32, Int32)

Lee un máximo especificado de caracteres de la secuencia actual en un búfer, comenzando en el índice especificado.

Read(Span<Char>)

Lee los caracteres de la secuencia actual en un intervalo.

Read(Span<Char>)

Lee los caracteres del lector actual y escribe los datos en el búfer especificado.

(Heredado de TextReader)
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.

ReadAsync(Char[], Int32, Int32)

Lee un número máximo de caracteres especificado en el lector de texto actual de forma asincrónica y escribe los datos en un búfer, comenzando en el índice especificado.

(Heredado de TextReader)
ReadAsync(Memory<Char>, CancellationToken)

Lee de forma asincrónica los caracteres de la secuencia actual en un bloque de memoria.

ReadAsync(Memory<Char>, CancellationToken)

Lee de forma asincrónica los caracteres de la secuencia actual en un bloque de memoria.

(Heredado de TextReader)
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.

ReadBlock(Char[], Int32, Int32)

Lee un número máximo de caracteres especificado en el lector de texto actual y escribe los datos en un búfer, comenzando en el índice especificado.

(Heredado de TextReader)
ReadBlock(Span<Char>)

Lee los caracteres de la secuencia actual y escribe los datos en un búfer.

ReadBlock(Span<Char>)

Lee los caracteres de la secuencia actual y escribe los datos en un búfer.

(Heredado de TextReader)
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.

ReadBlockAsync(Char[], Int32, Int32)

Lee un número máximo de caracteres especificado en el lector de texto actual de forma asincrónica y escribe los datos en un búfer, comenzando en el índice especificado.

(Heredado de TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

Lee de forma asincrónica los caracteres de la secuencia actual y escribe los datos en un búfer.

ReadBlockAsync(Memory<Char>, CancellationToken)

Lee de forma asincrónica los caracteres de la secuencia actual y escribe los datos en un búfer.

(Heredado de TextReader)
ReadLine()

Lee una línea de caracteres de la secuencia actual y devuelve los datos como una cadena.

ReadLineAsync()

Lee de forma asincrónica una línea de caracteres de la secuencia actual y devuelve los datos como una cadena.

ReadLineAsync()

Lee de forma asincrónica una línea de caracteres y devuelve los datos como una cadena.

(Heredado de TextReader)
ReadLineAsync(CancellationToken)

Lee de forma asincrónica una línea de caracteres de la secuencia actual y devuelve los datos como una cadena.

ReadLineAsync(CancellationToken)

Lee de forma asincrónica una línea de caracteres y devuelve los datos como una cadena.

(Heredado de TextReader)
ReadToEnd()

Lee todos los caracteres desde la posición actual hasta el final de la secuencia.

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.

ReadToEndAsync()

Lee de forma asincrónica todos los caracteres desde la posición actual hasta el final del lector de texto y los devuelve como una cadena.

(Heredado de TextReader)
ReadToEndAsync(CancellationToken)

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.

ReadToEndAsync(CancellationToken)

Lee de forma asincrónica todos los caracteres desde la posición actual hasta el final del lector de texto y los devuelve como una cadena.

(Heredado de TextReader)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Para obtener una descripción de este miembro, vea Dispose().

(Heredado de TextReader)

Se aplica a

Consulte también