StreamReader.ReadLine Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Leest een regel tekens uit de huidige stroom en retourneert de gegevens als een tekenreeks.
public:
override System::String ^ ReadLine();
public override string ReadLine();
override this.ReadLine : unit -> string
Public Overrides Function ReadLine () As String
Retouren
De volgende regel van de invoerstroom of null als het einde van de invoerstroom is bereikt.
Uitzonderingen
Er is onvoldoende geheugen om een buffer toe te wijzen voor de geretourneerde tekenreeks.
Er treedt een I/O-fout op.
Voorbeelden
In het volgende codevoorbeeld worden regels van een bestand gelezen totdat het einde van het bestand is bereikt.
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
Opmerkingen
Een regel wordt gedefinieerd als een reeks tekens gevolgd door een regelinvoer ("\n"), een regelterugloop ("\r"), of een regelterugloop direct gevolgd door een regelinvoer ("\r\n"). De tekenreeks die wordt geretourneerd, bevat niet de retour- of regelinvoer voor het einde van het regelterugloop. De geretourneerde waarde is null als het einde van de invoerstroom is bereikt.
Als de stroom eindigt op een nieuwe regel, wordt er geen extra lege regel geretourneerd. Een stroom die bijvoorbeeld dezelfde twee regels (en) produceert "line1\nline2\n" als een stroom die "line1\nline2"."line2""line1"
Deze methode overschrijft TextReader.ReadLine.
Als de huidige methode een OutOfMemoryExceptionwaarde genereert, wordt de positie van de lezer in het onderliggende Stream object gevorderd door het aantal tekens dat de methode kon lezen, maar de tekens die al in de interne ReadLine buffer zijn gelezen, worden verwijderd. Als u de positie van de onderliggende stroom bewerkt nadat u gegevens in de buffer hebt gelezen, komt de positie van de onderliggende stroom mogelijk niet overeen met de positie van de interne buffer. Als u de interne buffer opnieuw wilt instellen, roept u de DiscardBufferedData methode aan. Deze methode vertraagt echter de prestaties en moet alleen worden aangeroepen wanneer dit absoluut noodzakelijk is.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.