Stream类包含基本的数据读取与写入、数据随机读写、异步I/O机制等功能。
其子类扩充这些功能,因此了解Stream类显得相当重要。
一、Stream类的方法成员
(一) Stream类的方法成员大致分为下面四类:
1、数据读写
从数据流读取字节数据:Read、ReadByte
把数据写入数据流: Write、WriteByte
2、异步I/O
异步读取: BeginRead(开始异步读取)、EndRead(暂时停止异步读取)
异步写入: BeginWrite、EndWrite
3、随机存取
Seek指定数据当前位置的方法,用来设置当前开始读取写的数据流的位置。
这样就可以随意设置数据中的指针位置,进行数据的随机存取
4、状态处理
Flush 清空(刷新)数据流,可以将数据流缓冲区中所有数据清除,回存至连接数据流的底层设备。
Close 关闭数据流,释放数据流本身所占用的资源。
(二)成员表
Read 读取数据流中的字节数据,并重新设置当前数据流的位置
Readbyte 从数据读取一个字节的数据内容
Write 将当前的数据字节写入数据流中,当前数据流中的位置则往前移动所填入的字节数目。
WriteByte 将一个字节数据写入到数据流中,并且将数据流的位置往前移动一个字节的位置
BeginRead 异步读取字节数据
EndRead 结束异步读取
BeginWrite 异步写入字节数据
EndWrite 结束异步写入
Seek 重新设置当前数据流位置
Flush 清空数据流缓冲区,将其中的数据写入连接的底层数据源
Close 关闭数据流,释放数据流所使用的资源
二、Stream类的属性
CanRead 当前数据流是否可读
CanWrite 当前数据流是否可写
Position 设置或获取当前数据流的位置指针
Length 获取当前数据流的长度
1、CanSeek与Position,支持数据流的随机存取。
2、 顺序存取:当对数据流进行读写时,数据流的指针位置随着每次的读写操作依序往前推进一个字节,这种方法称顺序存取。
3、随机存取:当对数据流进行读写时,非逐字节进行,必须利用Position重设数据流的位置指针进行读写,这种方式称为随机存取。
4、CanRead、CanSeek、Length都是ReadOnly。
Length返回数据流长度(Long)。
三、Stream类的异常
IOException 一般性I/O异常。如:已关闭数据流仍进行操作,在数据流末尾进行读取
NotSupportedException 不支持异常,如:对只读数据流进行写入,对不支持Seek数据流进行Seek方法。
ArgumentNullException 参数为Null时的异常。
原文链接:https://www.f2er.com/vb/258444.html