StreamReader.ReadLine Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser en rad med tecken från den aktuella strömmen och returnerar data som en sträng.
public:
override System::String ^ ReadLine();
public override string ReadLine();
public override string? ReadLine();
override this.ReadLine : unit -> string
Public Overrides Function ReadLine () As String
Returer
Nästa rad från indataströmmen, eller null om slutet av indataströmmen har nåtts.
Undantag
Det finns inte tillräckligt med minne för att allokera en buffert för den returnerade strängen.
Ett I/O-fel inträffar.
Exempel
I följande kodexempel läss rader från en fil tills slutet av filen har nåtts.
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
Kommentarer
En rad definieras som en sekvens med tecken följt av en radmatning ("\n"), en vagnretur ("\r"), eller en vagnretur omedelbart följt av en radmatning ("\r\n"). Strängen som returneras innehåller inte den avslutande vagnreturen eller radmatningen. Det returnerade värdet är null om slutet på indataströmmen nås.
Om strömmen slutar med en ny radsekvens returneras ingen ytterligare tom rad. Till exempel genererar en ström som innehåller "line1\nline2\n" samma två rader ("line1" och "line2") som en ström som innehåller "line1\nline2".
Den här metoden åsidosätter TextReader.ReadLine.
Om den aktuella metoden genererar en OutOfMemoryExceptionavanceras läsarens position i det underliggande Stream objektet av antalet tecken som metoden kunde läsa, men tecknen som redan lästs in i den interna ReadLine bufferten ignoreras. Om du ändrar positionen för den underliggande strömmen efter att ha läst in data i bufferten kanske den underliggande strömmens position inte matchar den interna buffertens position. Om du vill återställa den interna bufferten DiscardBufferedData anropar du metoden, men den här metoden försämrar prestandan och bör bara anropas när det är absolut nödvändigt.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.