C#에서 문자열 배열의 내용을 텍스트 파일로 저장하려면 File.WriteAllText 계열의 메서드 중 하나인 WriteAllLines를 사용하는 것이 가장 간단합니다. 이 메서드는 배열의 각 요소를 파일에 한 줄씩 자동으로 기록해 주기 때문에 별도의 반복문이나 스트림 처리 없이 한 줄의 코드로 작업을 완료할 수 있습니다.
1. 문자열 배열 준비하기
먼저 파일에 저장할 문자열 배열을 선언합니다.
string[] stringArray = new string[] {
"one",
"two",
"three"
};
2. WriteAllLines 메서드로 파일에 쓰기
File.WriteAllLines 메서드는 첫 번째 인자로 파일 경로를, 두 번째 인자로 문자열 배열을 받습니다. 파일이 이미 존재하면 덮어쓰고, 존재하지 않으면 새로 생성합니다.
File.WriteAllLines("new.txt", stringArray);
배열의 각 요소는 개행 문자(줄바꿈)로 구분되어 순서대로 파일에 기록됩니다.
3. 전체 예제 코드
아래는 배열을 파일에 저장한 후, 다시 파일을 읽어 콘솔에 출력하여 결과를 확인하는 전체 코드입니다.
using System.IO;
using System;
public class Program {
public static void Main() {
// 저장할 문자열 배열
string[] stringArray = new string[] {
"one",
"two",
"three"
};
// 배열을 파일에 한 줄씩 기록
File.WriteAllLines("new.txt", stringArray);
// 파일 내용을 읽어 출력
using (StreamReader sr = new StreamReader("new.txt")) {
string res = sr.ReadToEnd();
Console.WriteLine(res);
}
}
}
실행 결과
one two three
추가 팁: 인코딩 지정하기
기본적으로 WriteAllLines는 UTF-8(바이트 순서 표시 없음)로 파일을 작성하지만, 필요에 따라 세 번째 인자로 인코딩을 직접 지정할 수 있습니다.
File.WriteAllLines("new.txt", stringArray, System.Text.Encoding.UTF8);
또한 비동기 방식으로 파일을 작성하고 싶다면 .NET 4.5 이상에서 제공하는 File.WriteAllLinesAsync 메서드를 활용할 수 있으며, 대용량 데이터를 다룰 때 UI 응답성을 유지하는 데 유용합니다.
정리
- File.WriteAllLines(path, stringArray): 배열 요소를 한 줄씩 파일에 기록
- 파일이 없으면 새로 생성, 있으면 덮어쓰기 수행
- 인코딩 옵션과 비동기 버전(WriteAllLinesAsync)도 함께 제공됨
이처럼 WriteAllLines 메서드를 사용하면 반복문 없이도 배열 데이터를 손쉽게 텍스트 파일로 저장할 수 있습니다.