[C# 튜토리얼] C# 파일 입출력
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)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.

멀티 스레딩과 비동기식의 차이점은 멀티 스레딩이 동시에 여러 스레드를 실행하는 반면, 현재 스레드를 차단하지 않고 비동기식으로 작업을 수행한다는 것입니다. 멀티 스레딩은 컴퓨팅 집약적 인 작업에 사용되며 비동기식은 사용자 상호 작용에 사용됩니다. 멀티 스레딩의 장점은 컴퓨팅 성능을 향상시키는 것이지만 비동기의 장점은 UI 스레드를 차단하지 않는 것입니다. 멀티 스레딩 또는 비동기식을 선택하는 것은 작업의 특성에 따라 다릅니다. 계산 집약적 작업은 멀티 스레딩을 사용하고 외부 리소스와 상호 작용하고 UI 응답 성을 비동기식으로 유지 해야하는 작업을 사용합니다.
