StreamReader.ReadLine Methode

Definitie

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.

Van toepassing op

Zie ook