文件是存储在具有特定名称和目录路径的磁盘中的数据的集合。当文件打开以进行读取或写入时,它将成为流。
流基本上是通过通信路径的字节序列。有两个主要流:输入流和输出流。输入流用于从文件读取数据(读取操作),输出流用于写入文件(写入操作)。
C# 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类有助于读取,写入和关闭文件。这个类派生自抽象类Stream。
需要创建一个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);
FileMode -
FileMode枚举器定义打开文件的各种方法。FileMode枚举器的成员有:Append:它打开一个现有的文件,并将光标放在文件的最后,或者如果该文件不存在则创建此文件。Create:它创建一个新文件。CreateNew: 它向操作系统指定它应该创建一个新的文件。Open:它打开一个现有文件。OpenOrCreate:它向操作系统指定它应该打开一个文件(如果存在),否则应该创建一个新的文件。Truncate:它打开一个现有文件,并将其大小截断为零字节。
FileAccess -
FileAccess枚举器有成员:Read,ReadWrite和Write。- FileShare -
FileShare枚举器具有以下成员: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类的强大功能,需要知道这些类常用的属性和方法。
System.IO类中一此最常用的方法和示例如下所列 -
读取和写入文本文件 - 它涉及到阅读和写入文本文件。
StreamReader和StreamWriter类有助于完成它。读取和写入二进制文件 - 它涉及从二进制文件读取和写入。
BinaryReader和BinaryWriter类有助于完成此操作。操作Windows文件系统 - 它为 C# 程序员提供浏览和查找Windows文件和目录的能力。
