C#文件流-FileStream类

FileStream类(文件流)类用于读写文件中的数据,它既支持同步读写操作,也支持异步读写操作。使用文件流可以对文件进行读取、写入、打开和关闭操作,以及系统相关操作的标准输入、标准输出等。

FileStream类包括9个属性,它们可以描述FileStream类的实例的特性,如流的长度(以字节为单位)、流的当前位置、是否能够读或写或查询等。FileStream类的属性的具体说明如表:

FileStream类的属性表

属 性 说 明

Length

获取流的长度

CanSeek

指示当前流是否支持查找

Name

获取FileStream的名称

CanTimeout

表示当前流是否可以超时

PositI/On

获取或设置此流的当前位置

ReadTimeout

指定流在超时前尝试读取多长时间

CanRead

指示当前流是否支持读取

IsAsync

表示当前流是异步还是同步打开的

CanWrite

指示当前流是否支持写入

Length属性可以获取流的长度,每一个单位的长度表示一个字节。

除了上述属性之外,FileStream类包括11个方法,它们可以用来打开、关闭、读取和写入文件,如读取文件的Read()方法、写入文件的Write()方法等。FileStream类的方法的具体说明如表:

FileStream类的实例方法表

方 法

说 明

Read()

从流中读取字节块并将该数据写入给定缓冲区中

ReadByte()

从文件中读取一个字节,并将读取位置提升一个字节

Write()

使用从缓冲区读取的数据将字节块写入该流

WriteByte()

将一个字节写入文件流的当前位置

Seek()

设置当前流的当前位置

续表

方 法

说 明

SetLength()

设置当前流的长度

BeginRead()

开始异步读

BeginWrite()

开始异步写

EndRead()

等待挂起的异步读取完成

Lock()

允许读取访问的同时防止其他进程更改 FileStream

Unlock()

允许其他进程访问以前锁定的某个文件的全部或部分

ReadByte()方法每一次读取文件的一个字节内容,并返回一个int类型的结果。读取内容之后,并将流的当前位置设置为下一个位置。

Read()和Write()方法用于同步读写操作,BeginRead()、BeginWrite()、EndRead()、Lock()和Unlock()方法一般用于以异步方式读取或写入流的内容。同步是指程序在进行读写时,其他活动停止。异步允许先读写数据,在公共语言运行库中完成请求后可以开始处理其他事情。FileStream类的默认方式是同步读\写操作。