StreamReader.ReadLine Metoda

Definice

Přečte řádek znaků z aktuálního datového proudu a vrátí data jako řetězec.

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

Návraty

String

Další řádek ze vstupního datového proudu nebo pokud je dosaženo konce null vstupního datového proudu.

Výjimky

Není dostatek paměti k přidělení vyrovnávací paměti pro vrácený řetězec.

Dojde k vstupně-výstupní chybě.

Příklady

Následující příklad kódu čte řádky ze souboru až do konce souboru.

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

Poznámky

Řádek je definován jako posloupnost znaků následovaná odvozem řádku ("\n"), návratem na řádku ("\r") nebo návratem na řádek hned za ním ("\r\n"). Vrácený řetězec neobsahuje ukončující znak konce řádku ani odvozování řádků. Vrácená hodnota je , pokud je dosaženo konce null vstupního datového proudu.

Tato metoda přepíše TextReader.ReadLine .

Pokud aktuální metoda vyvolá , pozice čtenáře v podkladovém objektu je rozšířena o počet znaků, které metoda mohla přečíst, ale znaky, které už jsou přečteny do interní vyrovnávací paměti, jsou OutOfMemoryException zahozeny. Stream ReadLine Pokud pracujete s umístěním podkladového datového proudu po načtení dat do vyrovnávací paměti, pozice podkladového datového proudu nemusí odpovídat pozici interní vyrovnávací paměti. Pokud chcete obnovit interní vyrovnávací paměť, zavolejte metodu . Tato metoda ale zpomaluje výkon a měla by se volat pouze v DiscardBufferedData případě, že je to nezbytně nutné.

Seznam běžných V/V úloh najdete v tématu Běžné V/V úlohy.

Platí pro

Viz také