C# 文件 I/O

2018-09-27 16:28 更新

文件 I/O

文件是存储在磁盘具有特定名称和目录路径的数据的集合。当一个文件被打开阅读或书写时,就变成了流。

流基本上是通过通信路径中的字节顺序。主要有两个流:输入流和输出流。输入流用于从文件系统中读取数据,输出流用于向文件中写数据。

I/O 类

System.IO 的命名空间有多种类,这些类被用于执行大量和文件有关的操作,例如创建和删除文件,读写文件,关闭文件等等。

下面的表格中列出了一些 System.IO 命名空间中常用的非抽象类:

I/O 类描述
BinaryReader从二进制流读取原始数据
BinaryWriter以二进制形式写入原始数据
BufferedStream字节流的临时存储
Directory用于操作目录结构
DirectoryInfo用于创建复合条件指令。
DriveInfo用于执行目录操作
File用于操作文件
FileInfo用于执行文件操作
FileStream用于读写文件中任意位置的内容
MemoryStream用于随机存取存储器中存储的流数据
Path用于执行有关路径信息的操作
StreamReader用于从字节流中读取字符
StreamWriter用于向流中写字符
StringReader用于读取字符串数组
StringWriter用于写入字符串数组

FileStream 类

System.IO 命名空间中的 FileStream 类有助于读取,写入和关闭文件。这个类派生自抽象类流。

你需要创建一个 FileStream 对象用于创建一个新的文件或打开一个已存在的文件。创建 FileStream 对象的语法如下:

    FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);

例如,创建一个 FileStream 对象F,读取一个名为 sample.txt 的文件的方法如下:

    FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
参数描述
FileModefileMode 枚举定义了各种方法来打开文件。fileMode 枚举的成员是:
Append: 打开一个已有的文件,并将光标放置在文件的末尾。如果文件不存在,则创建文件。
Create: 它创建一个新的文件
CreateNew: 指定操作系统应创建一个新的文件。如果文件已存在,则抛出异常。
Open: 它会打开一个现有的文件
OpenOrCreate: 指定操作系统应打开一个已有的文件。如果文件不存在,则用指定的名称创建一个新的文件打开。
Truncate: 打开一个已有的文件,文件一旦打开,就将被截断为零字节大小。
FileAccessFileAccess 枚举成员有:Read,ReadWrite 和 Write。
FileShareFileShare 枚举有以下成员:
Inheritable: 允许文件句柄可由子进程继承。
None: 它拒绝共享当前文件
Read: 它允许打开文件进行读取
ReadWrite: 它允许打开文件进行读取和写入
Write: 它允许打开文件写入

示例

下面的程序示范了 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 文件和目录。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号