C#에서 Stream 클래스는 데이터를 읽고 쓰는 작업을 지원하는 기본 클래스입니다. StreamReader 클래스는 Stream 클래스에서 파생된 클래스 중 하나로, 파일에서 텍스트를 읽는 데 사용됩니다.
StreamReader 클래스는 .NET Framework에서 제공하는 System.IO 네임스페이스에서 찾을 수 있으며, 다음과 같은 생성자를 포함합니다.
public StreamReader(string path);
public StreamReader(Stream stream);
첫 번째 생성자는 파일 경로를 인수로 사용하고, 두 번째 생성자는 Stream 객체를 인수로 사용합니다. StreamReader 클래스는 파일 또는 스트림에서 데이터를 읽고, 문자열, 라인 또는 문자 배열로 반환하는 메서드를 제공합니다.
StreamReader 클래스는 자동으로 버퍼링되어, 읽기 속도를 향상시킬 수 있습니다. 이는 생성자에서 bufferSize 매개 변수를 사용하여 제어할 수 있습니다. 또한 StreamReader 클래스는 파일의 인코딩을 자동으로 감지하고, 문자열을 올바른 방식으로 디코딩하여 반환합니다.
다음은 StreamReader 클래스를 사용하여 파일에서 텍스트를 읽는 예제입니다.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 파일 경로
string path = @"C:\Users\Example\Documents\test.txt";
// StreamReader 생성
StreamReader reader = new StreamReader(path);
// 파일 내용 출력
Console.WriteLine(reader.ReadToEnd());
// StreamReader 닫기
reader.Close();
}
}
위 코드에서는 StreamReader 클래스를 사용하여 파일 경로를 읽고, ReadToEnd() 메서드를 사용하여 파일 내용을 문자열로 반환합니다. 마지막으로, Close() 메서드를 사용하여 StreamReader를 닫습니다.
혹은 아래와 같은 방법으로도텍스트를 읽을 수 있습니다.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 파일 경로
string path = @"C:\Users\Example\Documents\test.txt";
// StreamReader 생성
StreamReader reader = File.OpenText(path);
// 파일 내용 출력
Console.WriteLine(reader.ReadToEnd());
// StreamReader 닫기
reader.Close();
}
}
위 코드에서는 File.OpenText() 메서드를 사용하여 파일 경로를 읽고, StreamReader 클래스를 생성합니다. 마찬가지로, ReadToEnd() 메서드를 사용하여 파일 내용을 문자열로 반환하고, Close() 메서드를 사용하여 StreamReader를 닫습니다.
File.OpenText() 메서드 외에도, File 클래스는 다양한 메서드를 제공합니다. 예를 들어, File.Create() 메서드를 사용하여 새로운 파일을 생성하거나, File.AppendText() 메서드를 사용하여 파일 끝에 텍스트를 추가할 수 있습니다.
StreamReader 클래스는 파일에서 텍스트를 읽는 데 사용되며, 이를 위해 다양한 메서드와 속성을 제공합니다. 이번에는 StreamReader 클래스의 주요 메서드와 속성에 대해 자세히 알아보겠습니다.
1. Read()
Read() 메서드는 파일에서 다음 문자를 읽고, 해당 문자의 정수값을 반환합니다. 파일의 끝에 도달하면 -1을 반환합니다.
2. Read(char[], int, int)
Read(char[], int, int) 메서드는 파일에서 지정된 개수의 문자를 읽어, 지정된 문자 배열의 지정된 위치에 씁니다. 파일의 끝에 도달하면 읽은 문자 수를 반환합니다.
3. ReadBlock()
ReadBlock() 메서드는 파일에서 다음 블록의 문자를 읽어, 지정된 문자 배열의 지정된 위치에 씁니다. 블록의 크기는 지정된 버퍼 크기와 같으며, 파일의 끝에 도달하면 읽은 문자 수를 반환합니다.
4. ReadLine()
ReadLine() 메서드는 파일에서 다음 줄을 읽어, 문자열로 반환합니다. 파일의 끝에 도달하면 null을 반환합니다.
5. ReadToEnd()
ReadToEnd() 메서드는 파일에서 현재 위치에서 끝까지의 모든 문자를 읽어, 문자열로 반환합니다.
6. BaseStream
BaseStream 속성은 현재 StreamReader 개체에 사용되는 Stream 개체를 반환합니다.
이 외에도 많은 하부 메서드들이 있으니 MS 공식문서를 참조해보세요.
'Languages > C#' 카테고리의 다른 글
Day 18: 애니메이션 소개 및 구현 (0) | 2023.04.26 |
---|---|
Day 17: 그래픽스 소개 및 구현 (0) | 2023.04.25 |
Day 16: ControlTemplate(컨트롤 템플릿) 커스터마이징, DataTemplate (0) | 2023.04.20 |
Day 15: WPF 리스트뷰와 트리뷰 구현 (0) | 2023.04.19 |
Day 14: 컬렉션과 바인딩 - ObservableCollection, ICollectionView (0) | 2023.04.18 |