StreamReader Clase

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 utiliza una StreamReader instancia de para leer texto de un archivo.The following example uses an instance of StreamReader to read text from a file. El constructor que se usa en este ejemplo no se admite para Tienda WindowsWindows Store su uso en aplicaciones de la.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.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 StreamReader una instancia de un ReadAsync objeto y se llama a su 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.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

StreamReaderestá diseñado para la entrada de caracteres en una codificación determinada, mientras Stream que la clase está diseñada para la entrada y salida de bytes.StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Se StreamReader usa para leer 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 interfaz IDisposable.This type implements the IDisposable interface. Cuando haya terminado de utilizar el tipo, debe desecharlo directa o indirectamente.When you have finished using the type, you should dispose of it either directly or indirectly. Para eliminar el tipo directamente, llame a su método Dispose en un bloque try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Para deshacerse de él indirectamente, use 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 más información, vea la sección "Uso de objetos que implementan IDisposable" en el tema de la interfaz IDisposable.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReadertiene como valor predeterminado la codificación UTF-8, a menos que se especifique lo contrario, en lugar de tener como valor predeterminado 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 obtiene la codificación de caracteres actual mediante la CurrentEncoding propiedad, el valor no será confiable hasta después del primer Read método, ya que la detección automática de la codificación no se realiza hasta la primera llamada Read a un 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, StreamReader un no es seguro para subprocesos.By default, a StreamReader is not thread safe. Vea TextReader.Synchronized para obtener un contenedor seguro para subprocesos.See TextReader.Synchronized for a thread-safe wrapper.

Las Read(Char[], Int32, Int32) sobrecargas del método y Write(Char[], Int32, Int32) leen y escriben el número de caracteres especificado count por el 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 distinguirán de BufferedStream.Read y BufferedStream.Write, que leen y escriben 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. Utilice los BufferedStream métodos solo para leer y escribir un número entero de elementos de matriz de bytes.Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

Nota

Al leer desde un Stream, es más eficaz utilizar un búfer que tenga 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 comunes de e/s.For a list of common I/O tasks, see Common I/O Tasks.

Constructores

StreamReader(Stream)

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

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)

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)

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)

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)

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)

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

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)

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)

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)

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

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

Propiedades

BaseStream

Devuelve la secuencia subyacente.Returns the underlying stream.

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

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()

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)

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.

(Heredado de MarshalByRefObject)
DiscardBufferedData()

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

Dispose()

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

(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.Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

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

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

(Heredado de MarshalByRefObject)
GetType()

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

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

(Heredado de MarshalByRefObject)
MemberwiseClone()

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

(Heredado de Object)
MemberwiseClone(Boolean)

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

(Heredado de MarshalByRefObject)
Peek()

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

Read()

Lee el siguiente carácter del flujo 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)

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>)
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)
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>)
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)
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()

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()

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()

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()

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

(Heredado de Object)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

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

(Heredado de TextReader)

Se aplica a

Consulte también: