StreamReader.ReadLine Metoda

Definice

Načte řádek znaků z aktuálního datového proudu a vrátí data jako řetězec.

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

Návraty

Další řádek ze vstupního datového proudu nebo null pokud je dosaženo konce vstupního datového proudu.

Výjimky

Nedostatek paměti pro přidělení vyrovnávací paměti pro vrácený řetězec.

Dojde k vstupně-výstupní chybě.

Příklady

Následující příklad kódu načte řádky ze souboru do dosažení konce souboru.

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

Poznámky

Čára je definována jako posloupnost znaků následovaných podáváním řádků ("\n"), návratem na začátek řádku ("\r") nebo návratem na začátek řádku bezprostředně za přímkou ("\r\n"). Vrácený řetězec neobsahuje ukončující návrat na začátek řádku nebo odřádkování. Vrácená hodnota je null , pokud je dosaženo konce vstupního datového proudu.

Pokud datový proud končí sekvencí nového řádku, nebude vrácen žádný další prázdný řádek. Například datový proud obsahující "line1\nline2\n" vytváří stejné dvě čáry ("line1" a "line2") jako datový proud obsahující "line1\nline2".

Tato metoda přepíše TextReader.ReadLine.

Pokud aktuální metoda vyvolá OutOfMemoryException, pozice čtenáře v podkladovém Stream objektu je rozšířena počtem znaků, které metoda dokázala přečíst, ale znaky, které jsou již přečteny do interní ReadLine vyrovnávací paměti, jsou zahozeny. Pokud pracujete s umístěním podkladového datového proudu po načtení dat do vyrovnávací paměti, umístění podkladového datového proudu nemusí odpovídat pozici interní vyrovnávací paměti. Chcete-li resetovat interní vyrovnávací paměť, zavolejte metodu DiscardBufferedData , ale tato metoda zpomaluje výkon a měla by být volána pouze v případě, že je to naprosto nezbytné.

Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Platí pro

Viz také