StreamReader.ReadLine Método

Definição

Lê uma linha de caracteres do fluxo atual e devolve os dados como uma cadeia de caracteres.

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

Devoluções

A linha seguinte do fluxo de entrada, ou null se o fim do fluxo de entrada for alcançado.

Exceções

Não há memória suficiente para alocar um buffer para a cadeia devolvida.

Ocorre um erro de E/S.

Exemplos

O exemplo de código seguinte lê linhas de um ficheiro até ao final do ficheiro.

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

Observações

Uma linha é definida como uma sequência de caracteres seguida por um avanço de linha ("\n"), um retorno de carro ("\r"), ou um retorno de carruagem imediatamente seguido por um avanço de linha ("\r\n"). A cadeia que é devolvida não contém o retorno do carro de terminação nem o avanço da linha. O valor devolvido é null se o fim do fluxo de entrada for atingido.

Se o fluxo terminar com uma sequência de nova linha, não é devolvida nenhuma linha vazia adicional. Por exemplo, um fluxo que contém "line1\nline2\n" produz as mesmas duas linhas ("line1" e "line2") que um fluxo que contém "line1\nline2".

Este método substitui o TextReader.ReadLine.

Se o método atual lançar um OutOfMemoryException, a posição do leitor no objeto subjacente Stream é avançada pelo número de caracteres que o método conseguiu ler, mas os caracteres já lidos no buffer interno ReadLine são descartados. Se manipular a posição do fluxo subjacente após ler os dados no buffer, a posição do fluxo subjacente pode não corresponder à posição do buffer interno. Para reiniciar o buffer interno, chama o DiscardBufferedData método; no entanto, este método abranda o desempenho e só deve ser chamado quando absolutamente necessário.

Para uma lista de tarefas comuns de E/S, consulte Tarefas Comuns de E/S.

Aplica-se a

Ver também