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

C#에서 일반 텍스트 파일을 여는 방법 완벽 가이드

C#에서 일반 텍스트 파일을 열고 읽으려면 StreamReader 클래스를 사용하면 됩니다. StreamReader는 System.IO 네임스페이스에 포함되어 있으며, 텍스트 파일을 한 줄씩 또는 문자 단위로 손쉽게 읽을 수 있도록 도와주는 대표적인 클래스입니다.

StreamReader로 파일 열기

다음과 같이 파일 경로를 지정하여 StreamReader 객체를 생성하면 해당 파일을 읽기 모드로 열 수 있습니다.

StreamReader sr = new StreamReader("d:/new.txt");

파일 내용 출력하기

ReadLine() 메서드를 사용하면 파일을 한 줄씩 읽을 수 있습니다. 파일의 끝에 도달하면 ReadLine()은 null을 반환하므로, while 루프를 활용해 전체 내용을 순차적으로 출력할 수 있습니다.

while ((line = sr.ReadLine()) != null) {
    Console.WriteLine(line);
}

전체 예제 코드

아래는 예외 처리까지 포함한 완전한 C# 코드 예제입니다. using 문을 사용하면 파일 사용이 끝난 후 리소스가 자동으로 해제되므로 안전하게 파일을 다룰 수 있습니다.

using System;
using System.IO;

namespace FileApplication {
    class Program {
        static void Main(string[] args) {
            try {

                using (StreamReader sr = new StreamReader("d:/new.txt")) {
                    string line;

                    // 파일의 끝에 도달할 때까지
                    // 각 줄을 읽어 화면에 출력합니다.
                    while ((line = sr.ReadLine()) != null) {
                        Console.WriteLine(line);
                    }
                }
            } catch (Exception e) {
                // 오류가 발생한 경우 사용자에게 알립니다.
                Console.WriteLine("파일을 읽을 수 없습니다:");
                Console.WriteLine(e.Message);
            }
            Console.ReadKey();
        }
    }
}

실행 결과

지정한 경로에 파일이 존재하지 않으면 다음과 같은 예외 메시지가 출력됩니다.

파일을 읽을 수 없습니다:
Could not find a part of the path "/home/cg/root/4281363/d:/new.txt".

참고 사항

실무에서는 파일을 열기 전에 File.Exists() 메서드로 파일 존재 여부를 먼저 확인하는 것이 좋습니다. 또한 한글이 포함된 텍스트 파일을 읽을 경우 인코딩 문제가 발생할 수 있으므로, new StreamReader(path, Encoding.UTF8)처럼 인코딩을 명시적으로 지정하는 것을 권장합니다.