StreamReader.ReadLine Methode

Definition

Liest eine Zeichenzeile aus dem aktuellen Datenstrom und gibt die Daten als Zeichenfolge zurück.

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

Gibt zurück

Die nächste Zeile aus dem Eingabedatenstrom oder null wenn das Ende des Eingabedatenstroms erreicht ist.

Ausnahmen

Es ist nicht genügend Arbeitsspeicher vorhanden, um einen Puffer für die zurückgegebene Zeichenfolge zuzuweisen.

Ein E/A-Fehler tritt auf.

Beispiele

Im folgenden Codebeispiel werden Zeilen aus einer Datei gelesen, bis das Ende der Datei erreicht ist.

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

Hinweise

Eine Zeile wird als Eine Folge von Zeichen definiert, gefolgt von einem Zeilenvorschub ("\n"), einer Wagenrücklauf ("\r") oder einer Wagenrücklauf, die unmittelbar nach einem Zeilenvorschub ("\r\n") folgt. Die zurückgegebene Zeichenfolge enthält nicht den endenden Wagenrücklauf oder Zeilenvorschub. Der zurückgegebene Wert ist null , wenn das Ende des Eingabedatenstroms erreicht ist.

Wenn der Datenstrom mit einer Newlinesequenz endet, wird keine zusätzliche leere Zeile zurückgegeben. Beispielsweise erzeugt ein Datenstrom "line1\nline2\n" , der die gleichen beiden Zeilen ("line1" und "line2") wie ein Datenstrom enthält "line1\nline2".

Diese Methode überschreibt TextReader.ReadLine.

Wenn die aktuelle Methode eine OutOfMemoryExceptionZeichenfolge auslöst, wird die Position des Lesers im zugrunde liegenden Stream Objekt um die Anzahl der Zeichen erweitert, die die Methode lesen konnte, aber die Zeichen, die bereits in den internen ReadLine Puffer gelesen wurden, werden verworfen. Wenn Sie die Position des zugrunde liegenden Datenstroms nach dem Lesen von Daten in den Puffer ändern, entspricht die Position des zugrunde liegenden Datenstroms möglicherweise nicht der Position des internen Puffers. Um den internen Puffer zurückzusetzen, rufen Sie die Methode auf. Diese Methode verlangsamt jedoch die DiscardBufferedData Leistung und sollte nur aufgerufen werden, wenn sie unbedingt erforderlich ist.

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".

Gilt für:

Weitere Informationen