C#에서 텍스트 파일의 내용을 줄 단위로 읽어야 할 때는 File.ReadAllLines() 메서드를 사용하는 것이 가장 간단합니다. 이 메서드는 파일의 모든 줄을 읽어 문자열 배열(String[]) 형태로 반환하기 때문에, 배열 인덱스만으로 각 줄에 손쉽게 접근할 수 있습니다.
예제 파일
예를 들어 다음과 같은 내용을 담고 있는 "new.txt" 파일이 있다고 가정해 보겠습니다.
One Two Three Four
1. 파일 경로 설정
먼저 읽어올 파일의 경로를 지정합니다.
String myPath = "new.txt";
2. ReadAllLines()로 줄 가져오기
File.ReadAllLines() 메서드를 호출하면 파일의 각 줄이 문자열 배열의 요소로 순서대로 저장됩니다.
String[] fLine = File.ReadAllLines(myPath);
이제 인덱스를 이용해 원하는 줄에 바로 접근할 수 있습니다. 예를 들어 첫 번째 줄을 가져오려면 다음과 같이 작성합니다.
fLine[0]
전체 예제 코드
파일의 줄을 하나씩 읽어 화면에 출력하는 전체 예제는 다음과 같습니다.
using System;
using System.IO;
public class Demo {
public static void Main() {
String myPath = "new.txt";
String[] fLine;
// 파일의 줄들을 배열로 읽어오기
fLine = File.ReadAllLines(myPath);
// 각 줄 출력하기
Console.WriteLine("Line 1: " + fLine[0]);
Console.WriteLine("Line 2: " + fLine[1]);
Console.WriteLine("Line 3: " + fLine[2]);
Console.WriteLine("Line 4: " + fLine[3]);
}
}
실행 결과
Line 1: One Line 2: Two Line 3: Three Line 4: Four
참고 사항
ReadAllLines()는 파일의 전체 내용을 한 번에 메모리에 불러오는 방식입니다. 따라서 용량이 매우 큰 파일을 다룰 때는 줄을 하나씩 지연(lazy) 방식으로 읽어오는 File.ReadLines()를 사용하는 것이 메모리 효율 면에서 더 유리합니다. 또한 파일의 실제 줄 수보다 큰 인덱스에 접근하면 IndexOutOfRangeException 예외가 발생할 수 있으므로, 반드시 배열의 길이(fLine.Length) 범위 안에서 접근하도록 주의해야 합니다.