C# 파일 입력 및 출력
파일은 지정된 이름과 디렉터리 경로로 디스크에 저장된 데이터 모음입니다. 파일을 읽거나 쓰기 위해 열면 스트림이 됩니다.
기본적으로 스트림은 통신 경로를 통해 전달되는 일련의 바이트입니다. 두 가지 주요 스트림이 있습니다: 입력 스트림과 출력 스트림. 입력 스트림은 파일에서 데이터를 읽는 데 사용되며(읽기 작업) 출력 스트림은 파일에 데이터를 쓰는 데 사용됩니다(쓰기 작업).
C# I/O 클래스
System.IO 네임스페이스에는 파일 생성 및 삭제, 파일 읽기 또는 쓰기, 파일 닫기 등과 같은 다양한 파일 작업을 수행하는 데 사용되는 다양한 클래스가 있습니다.
다음 표에는 System.IO 네임스페이스에서 일반적으로 사용되는 일부 비추상 클래스가 나열되어 있습니다.
I/O 클래스
설명
BinaryReader 바이너리 스트림에서 원시 데이터를 읽습니다.
BinaryWriter 원시 데이터를 바이너리 형식으로 씁니다.
BufferedStream 바이트 스트림의 임시 저장 공간입니다.
디렉토리는 디렉토리 구조를 조작하는 데 도움이 됩니다.
DirectoryInfo는 디렉터리에 대한 작업을 수행하는 데 사용됩니다.
DriveInfo 드라이브 정보를 제공합니다.
파일은 파일 처리에 도움이 됩니다.
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);
매개변수
설명
FileMode
FileMode 열거형은 파일을 여는 다양한 방법을 정의합니다. FileMode 열거형의 멤버는 다음과 같습니다.
Append: 기존 파일을 열고 파일 끝에 커서를 놓습니다. 파일이 없으면 파일이 생성됩니다.
만들기: 새 파일을 만듭니다. 파일이 이미 존재하는 경우 기존 파일을 삭제하고 새 파일이 생성됩니다.
CreateNew: 운영 체제가 새 파일을 생성하도록 지정합니다. 파일이 이미 존재하는 경우 예외가 발생합니다.
열기: 기존 파일을 엽니다. 파일이 존재하지 않으면 예외가 발생합니다.
OpenOrCreate: 운영 체제가 기존 파일을 열어야 함을 지정합니다. 파일이 존재하지 않으면 지정된 이름으로 새 파일이 생성되어 열립니다.
잘라내기: 기존 파일을 엽니다. 파일이 열리면 0바이트 크기로 잘립니다. 그런 다음 파일에 완전히 새로운 데이터를 쓸 수 있지만 파일의 원래 생성 날짜는 유지됩니다. 파일이 존재하지 않으면 예외가 발생합니다.
FileAccess
FileAccess 열거형의 멤버는 Read, ReadWrite 및 Write입니다.
FileShare
FileShare 열거형의 멤버는 다음과 같습니다.
상속 가능: 파일 핸들을 하위 프로세스에서 상속할 수 있습니다. . Win32는 이 기능을 직접 지원하지 않습니다.
없음: 현재 파일 공유를 거부합니다. 파일 열기 요청(이 프로세스 또는 다른 프로세스의)은 파일이 닫힐 때까지 실패합니다.
읽기: 나중에 읽기 위해 파일을 열 수 있습니다. 이 플래그를 지정하지 않으면 (이 프로세스 또는 다른 프로세스에서) 읽기 위해 파일을 여는 요청은 파일이 닫힐 때까지 실패합니다. 그러나 이 플래그를 지정하더라도 파일에 액세스하려면 추가 권한이 필요할 수 있습니다.
ReadWrite: 이후에 파일을 읽거나 쓰기 위해 열 수 있습니다. 이 플래그를 지정하지 않으면 파일을 읽거나 쓰기 위해(이 프로세스 또는 다른 프로세스에서) 파일을 여는 요청은 파일이 닫힐 때까지 실패합니다. 그러나 이 플래그를 지정하더라도 파일에 액세스하려면 추가 권한이 필요할 수 있습니다.
Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Delete:允许随后删除文件。
实例
下面的程序演示了 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 类的强大功能,您需要知道这些类常用的属性和方法。
在下面的章节中,我们将讨论这些类和它们执行的操作。请单击链接详细了解各个部分的知识:
主题
描述
文本文件的读写 它涉及到文本文件的读写。StreamReader 和 StreamWriter 类有助于完成文本文件的读写。
二进制文件的读写 它涉及到二进制文件的读写。BinaryReader 和 BinaryWriter 类有助于完成二进制文件的读写。
Windows 文件系统的操作 它让 C# 程序员能够浏览并定位 Windows 文件和目录。
以上就是【c#教程】C# 文件的输入与输出的内容,更多相关内容请关注PHP中文网(www.php.cn)!