StreamReader.ReadLine Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.