다음을 통해 공유


StreamReader 클래스

정의

특정 인코딩의 바이트 스트림에서 문자를 읽는 TextReader 를 구현합니다.

public ref class StreamReader : System::IO::TextReader
public class StreamReader : System.IO.TextReader
[System.Serializable]
public class StreamReader : System.IO.TextReader
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamReader : System.IO.TextReader
type StreamReader = class
    inherit TextReader
[<System.Serializable>]
type StreamReader = class
    inherit TextReader
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamReader = class
    inherit TextReader
Public Class StreamReader
Inherits TextReader
상속
StreamReader
상속
특성

예제

다음 예제에서는 instance StreamReader 사용하여 파일에서 텍스트를 읽습니다. 이 예제에 사용된 생성자는 Windows 스토어 앱에서 사용할 수 없습니다.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      // Create an instance of StreamReader to read from a file.
      StreamReader^ sr = gcnew StreamReader( "TestFile.txt" );
      try
      {
         String^ line;
         
         // Read and display lines from the file until the end of 
         // the file is reached.
         while ( line = sr->ReadLine() )
         {
            Console::WriteLine( line );
         }
      }
      finally
      {
         if ( sr )
            delete (IDisposable^)sr;
      }
   }
   catch ( Exception^ e ) 
   {
      // Let the user know what went wrong.
      Console::WriteLine( "The file could not be read:" );
      Console::WriteLine( e->Message );
   }
}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt"))
            {
                string line;
                // Read and display lines from the file until the end of
                // the file is reached.
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e)
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.IO

Class Test
    Public Shared Sub Main()
        Try
            ' Create an instance of StreamReader to read from a file.
            Dim sr As StreamReader = New StreamReader("TestFile.txt")
            Dim line As String
            ' Read and display the lines from the file until the end 
            ' of the file is reached.
            Do
                line = sr.ReadLine()
                Console.WriteLine(Line)
            Loop Until line Is Nothing
            sr.Close()
        Catch E As Exception
            ' Let the user know what went wrong.
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(E.Message)
        End Try
    End Sub
End Class

다음 예에서는 개체를 StreamReader 인스턴스화하고 메서드를 ReadAsync 호출하여 파일을 비동기적으로 읽습니다.

using System;
using System.IO;
using System.Threading.Tasks;

class Example
{
    static async Task Main()
    {
        await ReadAndDisplayFilesAsync();
    }

    static async Task ReadAndDisplayFilesAsync()
    {
        String filename = "TestFile1.txt";
        Char[] buffer;

        using (var sr = new StreamReader(filename)) {
            buffer = new Char[(int)sr.BaseStream.Length];
            await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
        }

        Console.WriteLine(new String(buffer));
    }
}
// The example displays the following output:
//       This is the first line of text in a relatively short file.
//       This is the second line.
//       This is the third line.
//       This is the fourth and final line.
Imports System.IO
Imports System.Threading.Tasks

Module Example
    Public Sub Main()
        ReadAndDisplayFilesAsync()
    End Sub

    Private Async Sub ReadAndDisplayFilesAsync()
        Dim filename As String = "TestFile1.txt"
        Dim buffer() As Char
        
        Using sr As New StreamReader(filename)
            ReDim buffer(CInt(sr.BaseStream.Length))
            Await sr.ReadAsync(buffer, 0, CInt(sr.BaseStream.Length))
        End Using

        Console.WriteLine(New String(buffer))
    End Sub
End Module
' The example displays the following output:
'       This is the first line of text in a relatively short file.
'       This is the second line.
'       This is the third line.
'       This is the fourth and final line.

설명

StreamReader 는 특정 인코딩의 문자 입력을 위해 디자인된 반면 Stream 클래스는 바이트 입력 및 출력을 위해 설계되었습니다. 표준 텍스트 파일에서 정보 줄을 읽는 데 사용합니다 StreamReader .

중요

이 형식이 구현 하는 IDisposable 인터페이스입니다. 형식을 사용 하 여 마쳤으면 직접 또는 간접적으로의 삭제 해야 있습니다. 직접 형식의 dispose 호출 해당 Dispose 의 메서드를 try/catch 블록입니다. 삭제 하지 직접, 언어 구문 같은 사용 using (C#에서) 또는 Using (Visual Basic에서는). 자세한 내용은 "를 사용 하는 개체는 구현 IDisposable" 섹션을 참조 하세요.를 IDisposable 인터페이스 항목입니다.

StreamReader 은 현재 시스템의 ANSI 코드 페이지로 기본값을 지정하는 대신, 달리 지정하지 않는 한 UTF-8 인코딩으로 기본 설정됩니다. UTF-8은 유니코드 문자를 올바르게 처리하고 지역화된 운영 체제 버전에서 일관된 결과를 제공합니다. 속성을 사용하여 CurrentEncoding 현재 문자 인코딩을 가져오는 경우 인코딩 자동 검색은 메서드에 대한 첫 번째 호출 Read 까지 수행되지 않으므로 첫 번째 Read 메서드 이후까지 값이 신뢰할 수 없습니다.

기본적으로 는 StreamReader 스레드로부터 안전하지 않습니다. 스레드로부터 안전한 래퍼는 를 참조하세요 TextReader.Synchronized .

Read(Char[], Int32, Int32)Write(Char[], Int32, Int32) 메서드 오버로드는 매개 변수로 지정된 count 문자 수를 읽고 씁니다. 매개 변수로 지정된 count 바이트 수를 읽고 쓰는 및 BufferedStream.Write와 구분 BufferedStream.Read 해야 합니다. 바이트 배열 요소의 BufferedStream 정수 수를 읽고 쓰는 데에만 메서드를 사용합니다.

참고

에서 읽을 Stream때 스트림의 내부 버퍼와 크기가 같은 버퍼를 사용하는 것이 더 효율적입니다.

일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.

생성자

StreamReader(Stream)

지정된 스트림에 대한 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(Stream, Boolean)

지정한 바이트 순서 표시 검색 옵션을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(Stream, Encoding)

지정된 문자 인코딩을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(Stream, Encoding, Boolean)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(Stream, Encoding, Boolean, Int32)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 기반으로 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다.

StreamReader(String)

지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(String, Boolean)

지정한 바이트 순서 표시 검색 옵션을 사용하여 지정한 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(String, Encoding)

지정된 문자 인코딩을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(String, Encoding, Boolean)

지정한 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

지정된 문자 인코딩, 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 경로에 대한 클래스의 StreamReader 새 instance 초기화하고 지정된 개체로 구성합니다FileStreamOptions.

StreamReader(String, Encoding, Boolean, Int32)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

StreamReader(String, FileStreamOptions)

기본 인코딩을 사용하여 지정된 파일 경로에 대한 클래스의 StreamReader 새 instance 초기화하여 파일의 시작 부분에서 바이트 순서 표시를 검색하고 지정된 FileStreamOptions 개체로 구성합니다.

필드

Null

빈 스트림 주위의 StreamReader 개체입니다.

속성

BaseStream

내부 스트림을 반환합니다.

CurrentEncoding

현재 StreamReader 개체에서 사용 중인 현재 문자 인코딩을 가져옵니다.

EndOfStream

현재 스트림 위치가 스트림의 끝에 있는지를 나타내는 값을 가져옵니다.

메서드

Close()

StreamReader 개체와 내부 스트림을 닫고 판독기와 관련된 모든 시스템 리소스를 해제합니다.

Close()

TextReader를 닫고 TextReader와 관련된 시스템 리소스를 해제합니다.

(다음에서 상속됨 TextReader)
CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
DiscardBufferedData()

내부 버퍼를 지웁니다.

Dispose()

해당 TextReader 개체에서 사용하는 리소스를 모두 해제합니다.

(다음에서 상속됨 TextReader)
Dispose(Boolean)

내부 스트림을 닫고 StreamReader에서 사용하는 관리되지 않는 리소스를 해제하고 관리되는 리소스를 선택적으로 해제할 수 있습니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Peek()

사용할 수 있는 다음 문자를 반환하지만 사용하지는 않습니다.

Read()

입력 스트림에서 다음 문자를 읽고 문자 위치를 한 문자씩 앞으로 이동합니다.

Read(Char[], Int32, Int32)

현재 스트림에서 지정된 최대 문자를 지정된 인덱스부터 버퍼로 읽어 들입니다.

Read(Span<Char>)

현재의 스트림에서 범위로 문자를 읽어 들입니다.

Read(Span<Char>)

현재 판독기에서 문자를 읽고, 지정된 버퍼에 씁니다.

(다음에서 상속됨 TextReader)
ReadAsync(Char[], Int32, Int32)

현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

ReadAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.

(다음에서 상속됨 TextReader)
ReadAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.

ReadAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.

(다음에서 상속됨 TextReader)
ReadBlock(Char[], Int32, Int32)

현재 스트림에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

ReadBlock(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

(다음에서 상속됨 TextReader)
ReadBlock(Span<Char>)

현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.

ReadBlock(Span<Char>)

현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.

(다음에서 상속됨 TextReader)
ReadBlockAsync(Char[], Int32, Int32)

현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.

ReadBlockAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.

(다음에서 상속됨 TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.

ReadBlockAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.

(다음에서 상속됨 TextReader)
ReadLine()

현재 스트림에서 한 줄의 문자를 읽고 데이터를 문자열로 반환합니다.

ReadLineAsync()

현재 스트림에서 한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

ReadLineAsync()

한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

(다음에서 상속됨 TextReader)
ReadLineAsync(CancellationToken)

현재 스트림에서 한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

ReadLineAsync(CancellationToken)

한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.

(다음에서 상속됨 TextReader)
ReadToEnd()

현재 위치부터 스트림 끝까지의 모든 문자를 읽습니다.

ReadToEndAsync()

현재 위치부터 스트림 끝까지의 모든 문자를 비동기적으로 읽어서 이를 하나의 문자열로 반환합니다.

ReadToEndAsync()

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 비동기적으로 읽어서 하나의 문자열로 반환합니다.

(다음에서 상속됨 TextReader)
ReadToEndAsync(CancellationToken)

현재 위치부터 스트림 끝까지의 모든 문자를 비동기적으로 읽어서 이를 하나의 문자열로 반환합니다.

ReadToEndAsync(CancellationToken)

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 비동기적으로 읽어서 하나의 문자열로 반환합니다.

(다음에서 상속됨 TextReader)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

이 멤버에 대한 설명은 Dispose()를 참조하세요.

(다음에서 상속됨 TextReader)

적용 대상

추가 정보