StreamReader.ReadLine Methode

Definition

Liest eine Zeile von Zeichen aus dem aktuellen Stream 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

String

Die nächste Zeile des Eingabestreams bzw. null, wenn das Ende des Eingabestreams erreicht ist.

Ausnahmen

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

Ein E/A-Fehler tritt auf.

Beispiele

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

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   try
   {
      if ( File::Exists( path ) )
      {
         File::Delete( path );
      }
      StreamWriter^ sw = gcnew StreamWriter( path );
      try
      {
         sw->WriteLine( "This" );
         sw->WriteLine( "is some text" );
         sw->WriteLine( "to test" );
         sw->WriteLine( "Reading" );
      }
      finally
      {
         delete sw;
      }

      StreamReader^ sr = gcnew StreamReader( path );
      try
      {
         while ( sr->Peek() >= 0 )
         {
            Console::WriteLine( sr->ReadLine() );
         }
      }
      finally
      {
         delete sr;
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
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 gefolgt von einem Zeilenvorschub ("\n"), einem Wagenrücklauf ("\r") oder einem Wagenrücklauf unmittelbar gefolgt von einem Zeilenvorschub ("\r\n") definiert. Die zurückgegebene Zeichenfolge enthält weder den abschließenden Wagenrücklauf noch den Zeilenvorschub. Der zurückgegebene Wert ist null , wenn das Ende des Eingabestreams erreicht ist.

Diese Methode überschreibt TextReader.ReadLine.

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

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Gilt für

Siehe auch