当前位置: 首页 > 文档资料 > C# 中文指南 >

C# 基础 - 文件 I/O

优质
小牛编辑
128浏览
2023-12-01

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

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

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 对象的语法如下:

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

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

  1. 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 类:

  1. using System;
  2. using System.IO;
  3. namespace FileIOApplication
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
  10. for (int i = 1; i <= 20; i++)
  11. {
  12. F.WriteByte((byte)i);
  13. }
  14. F.Position = 0;
  15. for (int i = 0; i <= 20; i++)
  16. {
  17. Console.Write(F.ReadByte() + " ");
  18. }
  19. F.Close();
  20. Console.ReadKey();
  21. }
  22. }
  23. }

编译执行上述代码,得到如下结果:

  1. 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 文件和目录。