반응형
버퍼 스트림(Buffered Stream), 파일 스트림(File Stream), 그리고 메모리 스트림(Memory Stream)은 C#에서 데이터를 처리하는 다양한 스트림 유형 중 일부입니다. 각각의 기능과 예시를 설명하겠습니다.
1. **버퍼 스트림(Buffered Stream)**: 컴퓨팅에서 버퍼(buffer, 문화어: 완충기억기)는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼링(buffering)이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다.
버퍼 스트림은 입출력 작업을 효율적으로 수행하기 위해 데이터를 버퍼에 저장하고 한 번에 읽거나 쓸 수 있는 스트림입니다. 이로 인해 입출력 작업의 성능이 향상됩니다. `BufferedStream` 클래스를 사용하여 버퍼 스트림을 생성할 수 있습니다.
using System;
using System.IO;
class Program
{
static void Main()
{
// 파일에서 읽고 버퍼 스트림으로 처리하는 예시
using (FileStream fileStream = new FileStream("example.txt", FileMode.Open))
using (BufferedStream bufferedStream = new BufferedStream(fileStream))
using (StreamReader reader = new StreamReader(bufferedStream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
2. **파일 스트림(File Stream)**:
파일 스트림은 파일에서 데이터를 읽고 쓰는 데 사용되는 스트림입니다. `FileStream` 클래스를 사용하여 파일 스트림을 생성하고 파일에 데이터를 쓰거나 파일로부터 데이터를 읽을 수 있습니다.
using System;
using System.IO;
class Program
{
static void Main()
{
// 파일에 텍스트를 쓰는 예시
using (FileStream fileStream = new FileStream("example.txt", FileMode.Create))
using (StreamWriter writer = new StreamWriter(fileStream))
{
writer.WriteLine("파일 스트림 예시입니다.");
}
// 파일에서 텍스트를 읽는 예시
using (FileStream fileStream = new FileStream("example.txt", FileMode.Open))
using (StreamReader reader = new StreamReader(fileStream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
3. **메모리 스트림(Memory Stream)**:
메모리 스트림은 메모리 내에 데이터를 저장하고 읽고 쓰는 데 사용되는 스트림입니다. 주로 파일이나 네트워크에서 읽은 데이터를 메모리에 임시로 저장할 때 사용됩니다.
using System;
using System.IO;
class Program
{
static void Main()
{
// 메모리 스트림에 데이터를 쓰는 예시
using (MemoryStream memoryStream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(memoryStream))
{
writer.WriteLine("메모리 스트림 예시입니다.");
writer.Flush();
// 메모리 스트림의 내용을 문자열로 출력
string result = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
Console.WriteLine(result);
}
}
}
728x90
'Programming > C# - Window' 카테고리의 다른 글
C#/ 델리게이트와 이벤트(delegate, event) (1) | 2023.10.10 |
---|---|
C#/ Regex(정규 표현식) 사용 (0) | 2023.10.10 |
C#/ CefSharp 사용 (0) | 2023.10.10 |
C#/ TCP-IP 통신 (0) | 2023.09.27 |
C#/ NModbus4(Modbus) 모드버스 (0) | 2023.09.27 |