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

C# FileStream 클래스 사용법 완벽 가이드

C# FileStream 클래스란?

FileStream 클래스는 C#에서 파일을 읽고 쓰는 등의 파일 입출력 작업을 수행하기 위한 스트림을 제공하는 클래스입니다. System.IO 네임스페이스에 포함되어 있으며, 바이트 단위로 파일 데이터를 처리할 수 있어 텍스트뿐만 아니라 이미지, 동영상 등 다양한 형식의 파일을 다룰 때 유용합니다.

FileStream 객체 생성 방법

FileStream 객체는 아래와 같이 생성할 수 있습니다.

FileStream fstream = new FileStream("d:\\new.txt", FileMode.OpenOrCreate);

위 코드에서는 FileMode.OpenOrCreate 옵션을 사용했습니다. 이 옵션은 해당 경로에 파일이 이미 존재하면 열고, 존재하지 않으면 새로 생성하는 역할을 합니다.

FileMode 주요 옵션

FileMode에는 여러 가지 옵션이 있으며, 상황에 맞게 선택하여 사용할 수 있습니다.

  • OpenOrCreate: 파일이 있으면 열고, 없으면 새로 생성
  • CreateNew: 새 파일을 생성하며, 이미 파일이 존재하면 예외 발생
  • Create: 새 파일을 생성하고, 기존 파일이 있으면 덮어씀
  • Open: 기존 파일을 열며, 파일이 없으면 예외 발생
  • Append: 파일 끝에 데이터를 추가하거나, 파일이 없으면 새로 생성

FileStream 사용 예제

다음은 C#에서 FileStream 클래스를 사용하는 전체 예제 코드입니다.

using System;
using System.IO;

public class Demo {
    public static void Main(string[] args) {
        FileStream fstream = new FileStream("d:\\new.txt", FileMode.OpenOrCreate);

        // 파일에 바이트 데이터 쓰기
        fstream.WriteByte(90);

        // 파일 닫기
        fstream.Close();
    }
}

위 예제의 실행 흐름은 다음과 같습니다.

  1. 파일 열기 또는 생성: FileMode.OpenOrCreate 옵션으로 d 드라이브에 new.txt 파일을 열거나, 없으면 새로 만듭니다.
  2. 데이터 쓰기: WriteByte(90) 메서드를 호출하여 파일에 바이트 값 90(아스키 문자 'Z')을 기록합니다.
  3. 리소스 해제: Close() 메서드를 호출하여 파일 스트림을 닫고 시스템 리소스를 해제합니다.

주의 사항

FileStream 사용 시에는 작업이 끝난 후 반드시 Close() 메서드를 호출해야 합니다. 그렇지 않으면 파일이 잠긴 상태로 유지되어 다른 프로세스가 해당 파일에 접근하지 못할 수 있습니다. 더 안전한 방법으로는 using 문을 활용하는 것이 좋습니다. using 블록이 종료되면 Dispose() 메서드가 자동으로 호출되어 리소스가 확실히 해제됩니다.

using (FileStream fstream = new FileStream("d:\\new.txt", FileMode.OpenOrCreate))
{
    fstream.WriteByte(90);
} // 블록 종료 시 자동으로 스트림 닫힘

이처럼 FileStream 클래스를 활용하면 C#에서 파일 입출력 작업을 효율적으로 처리할 수 있습니다.