C# 파일 입력 및 출력
A file은 지정된 이름과 디렉터리 경로로 디스크에 저장된 데이터 모음입니다. 파일을 읽거나 쓰기 위해 열면 stream이 됩니다.
기본적으로 스트림은 통신 경로를 통해 전달되는 일련의 바이트입니다. 두 가지 주요 스트림이 있습니다: 입력 스트림과 출력 스트림. 입력 스트림은 파일에서 데이터를 읽는 데 사용되며(읽기 작업), 출력 스트림은 파일에 데이터를 쓰는 데 사용됩니다(쓰기 작업).
C# I/O 클래스
System.IO 네임스페이스에는 파일 생성 및 삭제, 파일 읽기 또는 쓰기, 파일 닫기 등과 같은 다양한 파일 작업을 수행하는 데 사용되는 다양한 클래스가 있습니다.
다음 표에는 System.IO 네임스페이스에서 일반적으로 사용되는 일부 비추상 클래스가 나열되어 있습니다.
I/O 클래스 | Description |
---|---|
BinaryReader | 이진 스트림에서 원시 데이터를 읽습니다. |
BinaryWriter | 원시 데이터를 바이너리 형식으로 씁니다. |
BufferedStream | 바이트 스트림의 임시 저장 공간입니다. |
Directory | 는 디렉토리 구조를 조작하는 데 도움이 됩니다. |
DirectoryInfo | 은 디렉터리에 대한 작업을 수행하는 데 사용됩니다. |
DriveInfo | 는 드라이브 정보를 제공합니다. |
File | 은 파일 처리에 도움이 됩니다. |
FileInfo | 은 파일 작업을 수행하는 데 사용됩니다. |
FileStream | 은 파일의 어느 곳에서나 읽고 쓰는 데 사용됩니다. |
MemoryStream | 은 메모리에 저장된 데이터 스트림에 대한 무작위 액세스에 사용됩니다. |
Path | 경로 정보에 대한 작업을 수행합니다. |
StreamReader | 은 바이트 스트림에서 문자를 읽는 데 사용됩니다. |
StreamWriter | 은 스트림에 문자를 쓰는 데 사용됩니다. |
StringReader | 은 문자열 버퍼를 읽는 데 사용됩니다. |
StringWriter | 은 문자열 버퍼를 쓰는 데 사용됩니다. |
FileStream 클래스
System.IO 네임스페이스의 FileStream 클래스는 파일 읽기, 쓰기 및 닫기를 용이하게 합니다. 이 클래스는 추상 클래스 Stream에서 파생됩니다.
새 파일을 만들거나 기존 파일을 열려면 FileStream 개체를 만들어야 합니다. FileStream 객체를 생성하는 구문은 다음과 같습니다.
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
예를 들어 sample.txt라는 파일을 읽으려면 FileStream 객체 F를 생성합니다.
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
Parameters | Description |
---|---|
FileMo de | FileMode 열거형은 파일을 여는 다양한 방법을 정의합니다. FileMode 열거형의 멤버는 다음과 같습니다:
|
FileAccess | FileAccess 열거형의 멤버는 Read, ReadWrite 및 Write입니다. |
FileShare | FileShare 열거형의 멤버는 다음과 같습니다.
|
예제
다음 프로그램은 FileStream 클래스의 사용법을 보여줍니다.
using System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); } F.Position = 0; for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); } F.Close(); Console.ReadKey(); } } }
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
C# 고급 파일 작업
위의 예는 C#의 간단한 파일 작업을 보여줍니다. 그러나 C# System.IO 클래스의 기능을 최대한 활용하려면 이러한 클래스에서 일반적으로 사용되는 속성과 메서드를 알아야 합니다.
다음 섹션에서는 이러한 클래스와 해당 클래스가 수행하는 작업에 대해 설명합니다. 각 부분에 대해 자세히 알아보려면 링크를 클릭하세요.
Topic | Description |
---|---|
텍스트 파일 읽기 및 쓰기 | 텍스트 파일 읽기 및 쓰기가 포함됩니다. StreamReader 및 StreamWriter 클래스는 텍스트 파일을 읽고 쓰는 데 도움이 됩니다. |
바이너리 파일 읽기 및 쓰기 | 바이너리 파일 읽기 및 쓰기가 포함됩니다. BinaryReader 및 BinaryWriter 클래스는 바이너리 파일을 읽고 쓰는 데 도움이 됩니다. |
Windows 파일 시스템 운영 | 이를 통해 C# 프로그래머는 Windows 파일 및 디렉터리를 탐색하고 찾을 수 있습니다. |