Stream类

流有3种基本操作:

可以从流读取。读取是从流到数据结构(如字节数组)的数据传输。

可以向流写入。写入是从数据结构到流的数据传输。

流可以支持查找。查找是在流内对当前位置进行的查询和修改。查找功能取决于流所表示的后备存储的类型。例如,当前位置的概念并不适用于网络流,因此网络流不支持查找。基于后台数据源和存储库,不同的流可能只支持上述的某些功能,应用程序可以通过查询某个流的CanRead、CanWrite和CanSeek属性来了解该流能支持哪些功能。

 
(点击查看大图)图7-3  字节数据流
 
(点击查看大图)图7-4  字符数据流
 
图7-5  二进制数据流

Read和Write方法支持读/写字节数据。对于支持查找功能的流,使用Seek和SetLength方法以及Postion和Length属性可查询和修改流的当前位置和长度。

Stream类的公共属性和公共方法分别如表7-1与表7-2所示。

表7-1  Stream类公共属性

   

   

CanRead

获取指示当前流是否支持读取的值

CanSeek

获取指示当前流是否支持查找功能的值

CanWrite

获取指示当前流是否支持写入功能的值

Length

获取用字节表示的流的长度

Position

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

表7-2  Stream类公共方法

   

   

BeginRead

开始异步读操作

BeginWrite

开始异步写操作

Close

关闭当前流并释放与之关联的所有资源

(如套接字和文件句柄)

EndRead

等待挂起的异步读取完成

EndWrite

结束异步写操作

Flush

将清除该流的所有缓冲区,并使得所有

缓冲区数据被写入到基础设备

Read

从当前流读取字节序列,并在此流的

当前位置提示读取的字节数

ReadByte

从流中读取一个字节,并将流内的位置向前

推移一个字节;如果已到达流的末尾,则返回-1

Seek

设置当前流的位置

SetLength

设置当前流的长度

Write

向当前流写入字节序列,并在此流的

当前位置提示写入的字节数

WriteByte

将一个字节写入流内的当前位置,

并将流内的位置向前推移一个字节

posted @ 2010-04-03 22:13  逆时针  阅读(707)  评论(0编辑  收藏  举报