C#에서는 StreamWriter와 StreamReader를 사용하면 문자열 배열을 텍스트 파일에 손쉽게 저장하고 다시 불러올 수 있습니다. 이 글에서는 스트림 배열을 활용해 파일에 데이터를 기록하고 읽어오는 전체 과정을 예제와 함께 단계별로 살펴보겠습니다.
1. 문자열 배열 준비하기
먼저 파일에 저장할 값들을 담은 문자열 배열을 선언합니다.
string[] names = new string[] {"Jack", "Tom"};
2. StreamWriter로 파일에 쓰기
StreamWriter 객체를 생성한 뒤, foreach 문으로 배열의 각 요소를 한 줄씩 파일에 기록합니다.
using (StreamWriter sw = new StreamWriter("names.txt")) {
foreach (string s in names) {
sw.WriteLine(s);
}
}
using 블록을 사용하면 작업이 끝난 후 스트림이 자동으로 해제되므로, 별도로 Close()를 호출하지 않아도 되고 리소스 누수를 방지할 수 있습니다.
3. 전체 예제: 파일에 쓰고 다시 읽기
다음은 문자열 배열을 파일에 기록한 후, 같은 파일을 다시 열어 각 줄을 콘솔에 출력하는 완전한 예제입니다.
using System;
using System.IO;
namespace FileApplication {
class Program {
static void Main(string[] args) {
string[] names = new string[] {"Jack", "Tom"};
// 배열 내용을 파일에 쓰기
using (StreamWriter sw = new StreamWriter("names.txt")) {
foreach (string s in names) {
sw.WriteLine(s);
}
}
// 파일에서 각 줄을 읽어 출력하기
string line = "";
using (StreamReader sr = new StreamReader("names.txt")) {
while ((line = sr.ReadLine()) != null) {
Console.WriteLine(line);
}
}
Console.ReadKey();
}
}
}
실행 결과
Jack Tom
핵심 포인트 정리
- WriteLine(): 배열의 각 요소를 파일에 한 줄씩 기록합니다.
- ReadLine(): 파일에서 한 줄씩 읽어오며, 더 이상 읽을 내용이 없으면 null을 반환해 반복문이 종료됩니다.
- using 문: 스트림 사용이 끝나면 자동으로 리소스를 해제하여 안전한 파일 입출력을 보장합니다.
이처럼 C#의 스트림 클래스를 활용하면 배열 데이터를 파일로 간단하게 영속화할 수 있으며, 로그 저장, 설정 파일 생성 등 다양한 실무 시나리오에 응용할 수 있습니다.