Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 파일의 모든 줄을 한 줄씩 읽는 방법


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) 범위 안에서 접근하도록 주의해야 합니다.