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
- 상속
- 상속
- 특성
예제
다음 예제에서는 인스턴스 StreamReader 를 사용하여 파일에서 텍스트를 읽습니다. 이 예제에 사용된 생성자는 Windows 스토어 앱에서 사용할 수 없습니다.
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 인터페이스를 구현합니다. 형식 사용을 마쳤으면 직접 또는 간접적으로 삭제해야 합니다. 형식을 직접 삭제하려면 Disposetry/ 블록에서 해당 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.Read 바이트 수를 읽고 쓰는 구별되어야 BufferedStream.Write합니다.
BufferedStream 바이트 배열 요소의 정수 값을 읽고 쓰는 경우에만 메서드를 사용합니다.
메모
스트림에서 Stream읽을 때 스트림의 내부 버퍼와 크기가 같은 버퍼를 사용하는 것이 더 효율적입니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
생성자
| Name | Description |
|---|---|
| StreamReader(Stream, Boolean) |
지정된 바이트 순서 표시 검색 옵션을 사용하여 지정된 스트림에 대한 클래스의 새 인스턴스 StreamReader 를 초기화합니다. |
| StreamReader(Stream, Encoding, Boolean, Int32, Boolean) |
지정된 문자 인코딩, 바이트 순서 표시 검색 옵션 및 버퍼 크기에 따라 지정된 스트림에 대한 클래스의 StreamReader 새 인스턴스를 초기화하고 필요에 따라 스트림을 열어 둡니다. |
| StreamReader(Stream, Encoding, Boolean, Int32) |
지정된 문자 인코딩, 바이트 순서 표시 검색 옵션 및 버퍼 크기를 사용하여 지정된 스트림에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(Stream, Encoding, Boolean) |
지정된 문자 인코딩 및 바이트 순서 표시 검색 옵션을 사용하여 지정된 스트림에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(Stream, Encoding) |
지정된 문자 인코딩을 사용하여 지정된 스트림에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(Stream) |
지정된 스트림에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(String, Boolean) |
지정된 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대한 클래스의 새 인스턴스 StreamReader 를 초기화합니다. |
| StreamReader(String, Encoding, Boolean, FileStreamOptions) |
지정된 문자 인코딩, 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 경로에 대한 클래스의 StreamReader 새 인스턴스를 초기화하고 지정된 개체로 구성합니다 FileStreamOptions . |
| StreamReader(String, Encoding, Boolean, Int32) |
지정된 문자 인코딩, 바이트 순서 표시 검색 옵션 및 버퍼 크기를 사용하여 지정된 파일 이름에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(String, Encoding, Boolean) |
지정된 문자 인코딩 및 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
| StreamReader(String, Encoding) |
지정된 문자 인코딩을 사용하여 지정된 파일 이름에 대한 클래스의 새 인스턴스 StreamReader 를 초기화합니다. |
| StreamReader(String, FileStreamOptions) |
기본 인코딩을 사용하여 지정된 파일 경로에 대한 클래스의 StreamReader 새 인스턴스를 초기화하여 파일 시작 부분에서 바이트 순서 표시를 검색하고 지정된 개체로 구성합니다 FileStreamOptions . |
| StreamReader(String) |
지정된 파일 이름에 대한 클래스의 StreamReader 새 인스턴스를 초기화합니다. |
필드
| Name | Description |
|---|---|
| Null |
StreamReader 빈 스트림 주위의 개체입니다. |
속성
| Name | Description |
|---|---|
| BaseStream |
기본 스트림을 반환합니다. |
| CurrentEncoding |
현재 개체에서 사용 중인 현재 StreamReader 문자 인코딩을 가져옵니다. |
| EndOfStream |
현재 스트림 위치가 스트림의 끝에 있는지 여부를 나타내는 값을 가져옵니다. |
메서드
| Name | Description |
|---|---|
| Close() |
StreamReader 개체와 기본 스트림을 닫고 판독기와 연결된 시스템 리소스를 해제합니다. |
| 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>) |
현재 스트림의 문자를 범위로 읽습니다. |
| ReadAsync(Char[], Int32, Int32) |
현재 스트림에서 지정된 최대 문자 수를 비동기적으로 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다. |
| ReadAsync(Memory<Char>, CancellationToken) |
현재 스트림의 문자를 메모리 블록으로 비동기적으로 읽습니다. |
| ReadBlock(Char[], Int32, Int32) |
현재 스트림에서 지정된 최대 문자 수를 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다. |
| ReadBlock(Char[], Int32, Int32) |
현재 텍스트 판독기에서 지정된 최대 문자 수를 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다. (다음에서 상속됨 TextReader) |
| ReadBlock(Span<Char>) |
현재 스트림에서 문자를 읽고 버퍼에 데이터를 씁니다. |
| ReadBlockAsync(Char[], Int32, Int32) |
현재 스트림에서 지정된 최대 문자 수를 비동기적으로 읽고 지정된 인덱스에서 시작하여 버퍼에 데이터를 씁니다. |
| ReadBlockAsync(Memory<Char>, CancellationToken) |
현재 스트림에서 문자를 비동기적으로 읽고 버퍼에 데이터를 씁니다. |
| ReadLine() |
현재 스트림에서 문자 줄을 읽고 데이터를 문자열로 반환합니다. |
| ReadLineAsync() |
현재 스트림에서 문자 줄을 비동기적으로 읽고 데이터를 문자열로 반환합니다. |
| ReadLineAsync(CancellationToken) |
현재 스트림에서 문자 줄을 비동기적으로 읽고 데이터를 문자열로 반환합니다. |
| ReadToEnd() |
현재 위치에서 스트림의 끝까지 모든 문자를 읽습니다. |
| ReadToEndAsync() |
현재 위치에서 스트림의 끝까지 모든 문자를 비동기적으로 읽고 하나의 문자열로 반환합니다. |
| ReadToEndAsync(CancellationToken) |
현재 위치에서 스트림의 끝까지 모든 문자를 비동기적으로 읽고 하나의 문자열로 반환합니다. |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| IDisposable.Dispose() |
이 멤버에 대한 설명은 을 참조하세요 Dispose(). (다음에서 상속됨 TextReader) |