Stream in C# 튜토리얼: StreamReader 및 StreamWriter [예]
C# 스트림이란 무엇입니까?
C# 파일 작업에서 일반적으로 스트림은 파일을 읽고 쓰는 데 사용됩니다. 스트림은 애플리케이션과 파일 사이에 생성된 추가 계층입니다. 스트림은 파일에 대한 원활한 읽기 및 쓰기 작업을 보장하는 데 사용됩니다.
스트림은 일반적으로 대용량 파일에서 데이터를 읽을 때 사용됩니다. 스트림을 사용하면 대용량 파일의 데이터가 작은 덩어리로 나뉘어 스트림으로 전송됩니다. 그런 다음 이러한 데이터 덩어리를 애플리케이션에서 읽을 수 있습니다.
작은 덩어리로 나누는 이유는 큰 파일을 한 번에 읽는 성능에 영향을 미치기 때문입니다. 예를 들어 100MB 파일의 데이터를 한 번에 읽으면 애플리케이션이 중단되고 불안정해질 수 있습니다. 가장 좋은 접근 방식은 스트림을 사용하여 파일을 관리 가능한 덩어리로 나누는 것입니다.
따라서 파일에 쓰기 작업을 수행할 때, 쓸 데이터는 먼저 스트림에 쓰여집니다. 그런 다음 스트림에서 데이터가 파일에 쓰여집니다. 읽기 작업도 마찬가지입니다. 읽기 작업에서 데이터는 먼저 파일에서 스트림으로 전송됩니다. 그런 다음 스트림을 통해 애플리케이션에서 데이터가 읽힙니다. 스트림을 사용하여 읽고 쓸 수 있는 방법의 예를 살펴보겠습니다.
스트림 리더
스트림 리더는 스트림을 사용하여 파일에서 데이터를 읽는 데 사용됩니다. 파일의 데이터가 먼저 스트림으로 읽혀집니다. 그런 다음 애플리케이션은 스트림에서 데이터를 읽습니다.
이 예에서는 D 드라이브에 example.txt라는 파일이 있다고 가정합니다. 파일은 간단한 텍스트 파일이며 아래와 같이 2줄로 구성됩니다.
- Guru99 – .Net
- Guru99 -C#
이 예에서는 간단한 콘솔 애플리케이션을 만들고 파일 스트림을 사용하여 작업하겠습니다.
파일에서 데이터를 읽는 데 스트림을 사용하는 방법에 대한 예를 살펴보겠습니다. program.cs 파일에 아래 코드를 입력하세요.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
코드 설명:-
- 먼저 스트림 리더 개체를 선언합니다. 스트림 판독기 개체는 C#에서 파일에서 애플리케이션으로의 스트림을 정의하는 데 사용됩니다. 파일에서 데이터를 읽을 때마다 데이터가 파일에서 스트림으로 푸시됩니다. 파일.OpenText 읽기 전용 모드에서 "Example.txt" 파일을 여는 데 사용됩니다. 그런 다음 파일에 대한 처리기가 스트림 판독기 개체로 전송됩니다.
- 다음으로 파일에서 모든 데이터를 읽는 데 사용되는 임시 변수 's'를 정의합니다.
- 그런 다음 스트림 리더 메서드 ReadLine을 사용하여 스트림 버퍼에서 각 줄을 읽습니다. 이 작업을 수행할 때 조작, 각 줄은 먼저 파일에서 버퍼로 전송됩니다. 그런 다음 문자열 줄이 버퍼에서 변수 's'로 전송됩니다. 그런 다음 문자열 's'의 내용을 콘솔에 씁니다.
위의 코드가 설정되고 프로젝트가 다음을 사용하여 실행되면 비주얼 스튜디오, 아래 출력을 얻게 됩니다.
산출:-
출력에서 Stream Reader가 파일의 두 줄을 모두 읽는 것을 볼 수 있습니다. 마지막으로 스트림에서 읽은 문자열 줄이 콘솔로 전송되었습니다.
스트림 작성자
스트림 기록기는 스트림을 사용하여 파일에 데이터를 쓰는 데 사용됩니다. 애플리케이션의 데이터는 먼저 스트림에 기록됩니다. 그 후 스트림은 데이터를 파일에 씁니다. 파일에서 데이터를 쓰기 위해 스트림을 사용하는 방법에 대한 예를 살펴보겠습니다. program.cs 파일에 아래 코드를 입력하세요.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
코드 설명:-
- 먼저 스트림 기록기 개체를 선언합니다. 스트림 기록기 개체는 C#에서 스트림을 정의하는 데 사용됩니다. 그런 다음 스트림은 애플리케이션의 데이터를 파일에 쓰는 데 사용됩니다. 데이터를 써야 할 때마다 데이터가 애플리케이션에서 스트림으로 푸시됩니다. File.AppendText 명령은 추가 모드에서 "Example.txt" 파일을 여는 데 사용됩니다. 그런 다음 파일에 대한 처리기가 스트림 기록기 개체로 전송됩니다.
- 우리는 스트림 쓰기 방법인 Writeline을 사용하여 "Guru99 – ASP.Net" 줄을 스트림에 씁니다. 그러면 스트림에서 해당 행이 파일에 기록됩니다.
- 그런 다음 파일에 쓴 후 스트림 작성기를 닫습니다. 일반적으로 쓰기 목적으로 파일이 더 이상 필요하지 않은 경우 파일 핸들러를 닫는 것이 좋습니다.
- 마지막으로 파일 내용을 다시 읽고 콘솔 로그에 씁니다. 해당 행이 파일에 기록되었는지 확인하는 것입니다.
위의 코드를 설정하고 Visual Studio를 사용하여 프로젝트를 실행하면 아래 출력이 표시됩니다.
산출:-
출력에서 "Guru99 – ASP.Net" 줄이 파일에 성공적으로 추가되었음을 확인할 수 있습니다. 3줄의 텍스트가 모두 콘솔에 표시됩니다.
제품 개요
- 스트림은 애플리케이션과 파일 사이의 중간 수준으로 사용됩니다.
- StreamReader는 파일에서 데이터를 읽어야 할 때마다 사용됩니다.
- Streamwriter는 데이터를 파일에 써야 할 때마다 사용됩니다.