StreamReader.ReadLine Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 Folge von Zeichen definiert, gefolgt von einem Zeilenvorschub ("\n"), einem Wagenrücklauf ("\r") oder einem Wagenrücklauf unmittelbar gefolgt von einem Zeilenvorschub ("\r\n"). Die zurückgegebene Zeichenfolge enthält nicht den beendenden Wagenrücklauf oder Zeilenvorschub. Der zurückgegebene Wert ist null
, wenn das Ende des Eingabedatenstroms erreicht ist.
Diese Methode überschreibt TextReader.ReadLine.
Wenn die aktuelle Methode einen OutOfMemoryExceptionauslöst, wird die Position des Lesers im zugrunde liegenden Stream Objekt um die Anzahl der Zeichen erweitert, die die Methode lesen konnte, aber die bereits in den internen ReadLine Puffer gelesenen Zeichen werden verworfen. Wenn Sie die Position des zugrunde liegenden Datenstroms nach dem Lesen von Daten in den Puffer bearbeiten, stimmt die Position des zugrunde liegenden Datenstroms möglicherweise nicht mit der Position des internen Puffers überein. Um den internen Puffer zurückzusetzen, rufen Sie die -Methode auf. Diese Methode verlangsamt jedoch die DiscardBufferedData Leistung und sollte nur aufgerufen werden, wenn dies absolut erforderlich ist.
Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.