数据流提供了一种向后备存储写入字节和从后备存储读取字节的方式,它是在 .NET Framework 中执行读写文件操作时一种非常重要的介质。下面对数据流进行详细讲解。.
01 流程作类介绍
.NET Framework 使用流来支持读取和写入文件,我们可以将流视为一组连续的一维数据,包含开头和结尾,并且其中的游标指示了流中的当前位置。
1. 流操作
流中包含的数据可能来自内存、文件或 TCP/IP 套接字。流包含以下几种可应用于自身的基本操作。
读取:将数据从流传输到数据结构(如字符串或字节数组)中。
写入:将数据从数据源传输到流中。
查找:查询和修改在流中的位置。
2. 流的类型
在.NET Framework 中,流由 Stream 类来表示,该类构成了所有其他流的抽象类。不能直接创建 Stream 类的实例,但是必须使用它实现其中的一个类。
C#中有许多类型的流,但在处理文件输入/输出(I/O)时,最重要的类型为 FileStream 类,它提供读取和写入文件的方式。在处理文件 I/O 时使用的其他流主要包括BufferedStream、CryptoStream. MemoryStream 和 NetworkStream 等。
02 文件流类
FileStream 类公开以文件为主的 Stream,它表示在磁盘或网络路径上指向文件的流。一个 FileStream 类的实例实际上代表一个磁盘文件,它通过 Seek 方法进行对文件的随机访问,也同时包含了流的标准输入、 标准输出、标准错误等。FileStream 默认对文件的打开方式是同步的,但它同样很好地支持异步操作。
对文件流的操作。实际上可以将文件看作是电视信号发送塔要发送的一个电视节目(文件),将电视节目转换成模拟数字信号(文件的二进制流),按指定的发送序列发送到指定的接收地点(文件的接收地址)。
说明
FileStream 对象支持使用 Seek 方法对文件进行随机访问。Seek 允许将读取/写入位置移动到文件中的任意位置。
1. FileStream 类的常用属性
FileStream 类的常用属性及说明如表1 所示。

表1 FileStream 类的常用属性及说明
2. FileStream 类的常用方法
FileStream 类的常用方法及说明如表2 所示。

表2 FileStream 类的常用方法及说明
3. 使用 FileSream 类操作文件
要用 FileStream 类操作文件就要先实例化一个 FileStream 对象,FileStream 类的构造函数具有许多不同的重载形式,其中包括了一个最重要的参数,即 FileStream 枚举。
FileMode 枚举规定了如何打开或创建文件,其包括的枚举成员及说明如表3 所示。

表3 FileMode 类的枚举成员及说明
例1
下面的代码通过使用 FileStream 类对象打开 Test.txt 文本文件并对其进行读写访问。
FileStream aFlie = new FileStream("Test.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)
注意
文件要放在程序运行目录下,否则需要给构造函数传递绝对路径。