流具有如下3种基本操作:
- 写入:将数据从内存缓冲区传输到外部源;
- 读取:将数据从外部源传输到内存缓冲区;
- 查找:重新设置流的当前位置,以便随机读写。但并不是所有的流类型都支持查找,如网络流类没有当前位置的概念,就不支持查找。
Stream是虚拟类,它以及它的派生类都提供了Read和Write方法,可以支持在字节级别上对数据进行读写。Read方法从当前字节流读取字节放至内存缓冲区,Write方法把内存缓冲区的字节写入当前流中。
封装的其他流类
但仅支持字节级别的数据处理会给开发人员带来不便。将定应用程序需要将字符数据写入到流中,则需要先将字符数据转化为字节数组之后才能调用Write方法写入流。因此,除了Stream及其派生类的读写方法之外,.Net框架同样提供了其他多种支持流读写的类:
- BinaryReader:从Streams读取编码的字符串和基元数据类型;
- BinaryWriter:向Streams写入编码的字符串和基元数据类型;
- StreamReader:通过使用Encoding将字符转换为字节,向Streams写入字符;
- StreamWriter:通过使用Encoding进行字符和字节的转换,可直接从Streams中读取字符;