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类的默认方式是同步读\写操作。