StreamReader 클래스

정의

특정 인코딩의 바이트 스트림에서 문자를 읽는 TextReader 를 구현합니다.Implements a TextReader that reads characters from a byte stream in a particular encoding.

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
상속
특성

예제

다음 예에서는의 인스턴스를 사용 하 여 StreamReader 파일에서 텍스트를 읽습니다.The following example uses an instance of StreamReader to read text from a file. 이 예제에 사용 된 생성자는 Windows 스토어 앱에서 사용할 수 없습니다.The constructor used in this example is not supported for use in Windows Store Apps.

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 메서드를 호출 하 여 파일을 비동기적으로 읽습니다.The following example instantiates a StreamReader object and calls its ReadAsync method to read a file asynchronously.

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 is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. StreamReader표준 텍스트 파일에서 정보 줄을 읽는 데 사용 합니다.Use StreamReader for reading lines of information from a standard text file.

중요

이 형식이 구현 하는 IDisposable 인터페이스입니다.This type implements the IDisposable interface. 형식을 사용 하 여 마쳤으면 직접 또는 간접적으로의 삭제 해야 있습니다.When you have finished using the type, you should dispose of it either directly or indirectly. 직접 형식의 dispose 호출 해당 Dispose 의 메서드를 try/catch 블록입니다.To dispose of the type directly, call its Dispose method in a try/catch block. 삭제 하지 직접, 언어 구문 같은 사용 using (C#에서) 또는 Using (Visual Basic에서는).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). 자세한 내용은 "를 사용 하는 개체는 구현 IDisposable" 섹션을 참조 하세요.를 IDisposable 인터페이스 항목입니다.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

StreamReader 달리 지정 되지 않은 경우 기본적으로 현재 시스템에 대 한 ANSI 코드 페이지가 아니라 UTF-8 인코딩으로 지정 됩니다.StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. U t f-8은 유니코드 문자를 올바르게 처리 하 고 지역화 된 버전의 운영 체제에서 일관 된 결과를 제공 합니다.UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system. 속성을 사용 하 여 현재 문자 인코딩을 가져오는 경우 CurrentEncoding Read 인코딩 자동 검색은 메서드를 처음 호출할 때까지 수행 되지 않기 때문에 첫 번째 메서드 후 까지는 값을 신뢰할 수 없습니다 Read .If you get the current character encoding using the CurrentEncoding property, the value is not reliable until after the first Read method, since encoding auto detection is not done until the first call to a Read method.

기본적으로는 StreamReader 스레드로부터 안전 하지 않습니다.By default, a StreamReader is not thread safe. TextReader.Synchronized스레드로부터 안전한 래퍼는를 참조 하세요.See TextReader.Synchronized for a thread-safe wrapper.

Read(Char[], Int32, Int32)Write(Char[], Int32, Int32) 메서드 오버 로드는 매개 변수로 지정 된 문자 수를 읽고 씁니다 count .The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter. 이러한 BufferedStream.Read BufferedStream.Write 값은 매개 변수로 지정 된 바이트 수를 읽고 쓰는 및에서 구분 됩니다 count .These are to be distinguished from BufferedStream.Read and BufferedStream.Write, which read and write the number of bytes specified by the count parameter. BufferedStream바이트 배열 요소 수의 정수 부분을 읽고 쓰는 데만 메서드를 사용 합니다.Use the BufferedStream methods only for reading and writing an integral number of byte array elements.

참고

에서 읽을 때 Stream 스트림의 내부 버퍼와 크기가 같은 버퍼를 사용 하는 것이 더 효율적입니다.When reading from a Stream, it is more efficient to use a buffer that is the same size as the internal buffer of the stream.

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

생성자

StreamReader(Stream)

지정된 스트림에 대한 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified stream.

StreamReader(Stream, Boolean)

지정한 바이트 순서 표시 검색 옵션을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified stream, with the specified byte order mark detection option.

StreamReader(Stream, Encoding)

지정된 문자 인코딩을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding.

StreamReader(Stream, Encoding, Boolean)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding and byte order mark detection option.

StreamReader(Stream, Encoding, Boolean, Int32)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified stream, with the specified character encoding, byte order mark detection option, and buffer size.

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

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 기반으로 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다.Initializes a new instance of the StreamReader class for the specified stream based on the specified character encoding, byte order mark detection option, and buffer size, and optionally leaves the stream open.

StreamReader(String)

지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified file name.

StreamReader(String, Boolean)

지정한 바이트 순서 표시 검색 옵션을 사용하여 지정한 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified file name, with the specified byte order mark detection option.

StreamReader(String, Encoding)

지정된 문자 인코딩을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding.

StreamReader(String, Encoding, Boolean)

지정한 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding and byte order mark detection option.

StreamReader(String, Encoding, Boolean, Int32)

지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the StreamReader class for the specified file name, with the specified character encoding, byte order mark detection option, and buffer size.

필드

Null

빈 스트림 주위의 StreamReader 개체입니다.A StreamReader object around an empty stream.

속성

BaseStream

내부 스트림을 반환합니다.Returns the underlying stream.

CurrentEncoding

현재 StreamReader 개체에서 사용 중인 현재 문자 인코딩을 가져옵니다.Gets the current character encoding that the current StreamReader object is using.

EndOfStream

현재 스트림 위치가 스트림의 끝에 있는지를 나타내는 값을 가져옵니다.Gets a value that indicates whether the current stream position is at the end of the stream.

메서드

Close()

StreamReader 개체와 내부 스트림을 닫고 판독기와 관련된 모든 시스템 리소스를 해제합니다.Closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader.

Close()

TextReader를 닫고 TextReader와 관련된 시스템 리소스를 해제합니다.Closes the TextReader and releases any system resources associated with the TextReader.

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

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

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

내부 버퍼를 지웁니다.Clears the internal buffer.

Dispose()

해당 TextReader 개체에서 사용하는 리소스를 모두 해제합니다.Releases all resources used by the TextReader object.

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

내부 스트림을 닫고 StreamReader에서 사용하는 관리되지 않는 리소스를 해제하고 관리되는 리소스를 선택적으로 해제할 수 있습니다.Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

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

기본 해시 함수로 작동합니다.Serves as the default hash function.

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

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

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

사용할 수 있는 다음 문자를 반환하지만 사용하지는 않습니다.Returns the next available character but does not consume it.

Read()

입력 스트림에서 다음 문자를 읽고 문자 위치를 한 문자씩 앞으로 이동합니다.Reads the next character from the input stream and advances the character position by one character.

Read(Char[], Int32, Int32)

현재 스트림에서 지정된 최대 문자를 지정된 인덱스부터 버퍼로 읽어 들입니다.Reads a specified maximum of characters from the current stream into a buffer, beginning at the specified index.

Read(Span<Char>)

현재의 스트림에서 범위로 문자를 읽어 들입니다.Reads the characters from the current stream into a span.

Read(Span<Char>)

현재 판독기에서 문자를 읽고, 지정된 버퍼에 씁니다.Reads the characters from the current reader and writes the data to the specified buffer.

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

현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

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

현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.Asynchronously reads the characters from the current stream into a memory block.

ReadAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.Asynchronously reads the characters from the current stream into a memory block.

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

현재 스트림에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current stream and writes the data to a buffer, beginning at the specified index.

ReadBlock(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current text reader and writes the data to a buffer, beginning at the specified index.

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

현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.Reads the characters from the current stream and writes the data to a buffer.

ReadBlock(Span<Char>)

현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.Reads the characters from the current stream and writes the data to a buffer.

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

현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index.

ReadBlockAsync(Char[], Int32, Int32)

현재 텍스트 판독기에서 지정된 최대 문자 수를 비동기적으로 읽어 이 데이터를 지정된 위치에서 시작되는 버퍼에 씁니다.Reads a specified maximum number of characters from the current text reader asynchronously and writes the data to a buffer, beginning at the specified index.

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

현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.Asynchronously reads the characters from the current stream and writes the data to a buffer.

ReadBlockAsync(Memory<Char>, CancellationToken)

현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.Asynchronously reads the characters from the current stream and writes the data to a buffer.

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

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

ReadLineAsync()

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

ReadLineAsync()

한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.Reads a line of characters asynchronously and returns the data as a string.

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

현재 위치부터 스트림 끝까지의 모든 문자를 읽습니다.Reads all characters from the current position to the end of the stream.

ReadToEndAsync()

현재 위치부터 스트림 끝까지의 모든 문자를 비동기적으로 읽어서 이를 하나의 문자열로 반환합니다.Reads all characters from the current position to the end of the stream asynchronously and returns them as one string.

ReadToEndAsync()

현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 비동기적으로 읽어서 하나의 문자열로 반환합니다.Reads all characters from the current position to the end of the text reader asynchronously and returns them as one string.

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

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

이 멤버에 대한 설명은 Dispose()를 참조하세요.For a description of this member, see Dispose().

(다음에서 상속됨 TextReader)

적용 대상

추가 정보