>  기사  >  백엔드 개발  >  [C# 튜토리얼] C# 파일 입출력

[C# 튜토리얼] C# 파일 입출력

黄舟
黄舟원래의
2016-12-24 13:32:281274검색

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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.