Comparteix a través de


StreamReader.ReadLine Método

Definición

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

public:
 override System::String ^ ReadLine();
public override string ReadLine ();
public override string? ReadLine ();
override this.ReadLine : unit -> string
Public Overrides Function ReadLine () As String

Devoluciones

Línea siguiente de la secuencia de entrada, o null si se alcanza el final de la secuencia de entrada.

Excepciones

No hay memoria suficiente para asignar un búfer para la cadena devuelta.

Error de E/S.

Ejemplos

En el ejemplo de código siguiente se leen líneas de un archivo hasta que se alcanza el final del archivo.

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   try
   {
      if ( File::Exists( path ) )
      {
         File::Delete( path );
      }
      StreamWriter^ sw = gcnew StreamWriter( path );
      try
      {
         sw->WriteLine( "This" );
         sw->WriteLine( "is some text" );
         sw->WriteLine( "to test" );
         sw->WriteLine( "Reading" );
      }
      finally
      {
         delete sw;
      }

      StreamReader^ sr = gcnew StreamReader( path );
      try
      {
         while ( sr->Peek() >= 0 )
         {
            Console::WriteLine( sr->ReadLine() );
         }
      }
      finally
      {
         delete sr;
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        try
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }

            using (StreamWriter sw = new StreamWriter(path))
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("Reading");
            }

            using (StreamReader sr = new StreamReader(path))
            {
                while (sr.Peek() >= 0)
                {
                    Console.WriteLine(sr.ReadLine());
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO
Imports System.Text

Public Class Test

    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"

        Try
            If File.Exists(path) Then
                File.Delete(path)
            End If

            Dim sw As StreamWriter = New StreamWriter(path)
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim sr As StreamReader = New StreamReader(path)

            Do While sr.Peek() >= 0
                Console.WriteLine(sr.ReadLine())
            Loop
            sr.Close()
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Comentarios

Una línea se define como una secuencia de caracteres seguida de una fuente de líneas ("\n"), un retorno de carro ("\r") o un retorno de carro inmediatamente seguido de una fuente de línea ("\r\n"). La cadena que se devuelve no contiene el retorno de carro de terminación ni la alimentación de línea. El valor devuelto es null si se alcanza el final del flujo de entrada.

Este método invalida TextReader.ReadLine.

Si el método actual inicia una OutOfMemoryException, la posición del lector en el objeto subyacente Stream está avanzada por el número de caracteres que el método pudo leer, pero los caracteres que ya se leen en el búfer interno ReadLine se descartan. Si manipula la posición de la secuencia subyacente después de leer los datos en el búfer, es posible que la posición de la secuencia subyacente no coincida con la posición del búfer interno. Para restablecer el búfer interno, llame al método ; sin embargo, este método ralentiza el DiscardBufferedData rendimiento y solo se debe llamar cuando sea absolutamente necesario.

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

Se aplica a

Consulte también