StreamReader 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 인코딩의 바이트 스트림에서 문자를 읽는 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
- 상속
- 상속
- 특성
예제
다음 예제에서는 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를 닫고 |
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) |
적용 대상
추가 정보
.NET