StreamReader.ReadLine 메서드

정의

현재 스트림에서 한 줄의 문자를 읽고 데이터를 문자열로 반환합니다.Reads a line of characters from the current stream and returns the data as a string.

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

반환

입력 스트림의 다음 줄을 반환하거나 입력 스트림의 끝에 도달한 경우 null을 반환합니다.The next line from the input stream, or null if the end of the input stream is reached.

예외

메모리가 부족하여 반환된 문자열의 버퍼를 할당할 수 없습니다.There is insufficient memory to allocate a buffer for the returned string.

I/O 오류가 발생했습니다.An I/O error occurs.

예제

다음 코드 예제에서는 파일의 끝에 도달할 때까지 파일에서 줄을 읽습니다.The following code example reads lines from a file until the end of the file is reached.

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

설명

줄 뒤에 줄 문자의 시퀀스 ("\n") 피드, 캐리지 리턴 ("\r") 또는 캐리지 리턴 바로 뒤에 줄 바꿈 ("\r\n")으로 정의 됩니다.A line is defined as a sequence of characters followed by a line feed ("\n"), a carriage return ("\r"), or a carriage return immediately followed by a line feed ("\r\n"). 반환 되는 문자열 종료 캐리지 리턴 또는 줄 바꿈 없습니다.The string that is returned does not contain the terminating carriage return or line feed. 반환 된 값은 입력 스트림의 끝에 도달 하는 경우 null 됩니다.The returned value is null if the end of the input stream is reached.

이 메서드는 TextReader.ReadLine를 재정의합니다.This method overrides TextReader.ReadLine.

현재 메서드에서 OutOfMemoryException을 throw 하는 경우, 기본 Stream 개체의 판독기 위치는 메서드에서 읽을 수 있는 문자 수 만큼 이동 하지만 이미 내부 ReadLine 버퍼로 읽어온 문자는 삭제 됩니다.If the current method throws an OutOfMemoryException, the reader's position in the underlying Stream object is advanced by the number of characters the method was able to read, but the characters already read into the internal ReadLine buffer are discarded. 버퍼에 데이터를 읽은 후 기본 스트림의 위치를 조작 하는 경우 기본 스트림의 위치 내부 버퍼의 위치와 일치 하지 않을 수 있습니다.If you manipulate the position of the underlying stream after reading data into the buffer, the position of the underlying stream might not match the position of the internal buffer. 내부 버퍼를 다시 설정 하려면 DiscardBufferedData 메서드를 호출 합니다. 그러나이 메서드는 성능을 저하 시키며 반드시 필요한 경우에만 호출 해야 합니다.To reset the internal buffer, call the DiscardBufferedData method; however, this method slows performance and should be called only when absolutely necessary.

일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

적용 대상

추가 정보