BinaryReader,BinaryWriter
Writer的方法主要有--Seek主要用来选取插入的位置,Write方法重载了写入bool,decimal,double,float,int,long,sbyte,short,string,unit,ulong,ushort,byte,byte[],char,char[]的方法。
可以看见其中的几个方法--PeekChar,Read,Readxxx,对于byte和char有Readxxxs。Readxxx和Readxxxs行为基本一致,读一个类型,往后移,而且当读到尽头,再调用这个方法将抛出异常。Read有3个重载方法,第一个是Read,返回int,int是读取的值,当读到流的末尾时返回的是-1.第二个是Read到一个char[]中指定读到char[]的什么位置,要读几个字符,返回的是读取字符的个数,当读到流的末尾返回0,还有一个重载是byte[]类似于char[]。PeekChar是获取下一个char,返回读取的东东,但是流不往后走,也就是下次读还是这个字符。
StringWriter,StringReader
StringWriter类提供一个类似于Stream的方法连接字符串。字符串连接是一个开销很大的操作,因为字符串本身是不变的(immutable)类型。用 StringWriter来连接字符串会提供更好的性能。StringWriter类只是另一个对象 -- StringBuilder 的封装,StringBuilder才是真正用来执行字符串连接的类。你可以将StringBuilder作为一个参数构造器传入 StringWriter (否则会在其内部生成一个实例),并用GetStringBuilder方法返回StringBuilder。这是一个基类型,只接受和操作string,不参与修饰别的流。
http://topic.csdn.net/u/20090927/11/499c6042-df94-4345-93bc-afeaf7c49ee5.html
FileStream --以byte[]数组形式操作,所以是二进制的。支持Seek,支持异步
BufferedStream-- 带缓冲的流,是修饰类流。注意使用flush。
StreamWriter,StreamReader --操作文本,提供了ReadLine,WriteLine方法就是证明。StreamReader构造器接受一个Stream对象或者一个文件路径 (你可以使用Universal Naming Convention [UNC] 路径,但不能用URL)。你还可以指定这些参数:比如编码类型(encoding type)(如果没有特别指定,系统会默认使用UTF8编码);作为缓存的内置缓冲器大小(很可能通过BufferedStream对象来实现);还有一 个布尔值,它用来指示是否应通过该Stream的第一个字节来判断编码类型。可以看到,StreamReader是个很有用的封装(wrapper)类
TextReader,TextWriter --表示可读取连续字符系列的读取器。TextReader 为 StreamReader 和 StringReader 的抽象基类,它们分别从流和字符串读取字符。使用这些派生类可打开一个文本文件以读取指定范围的字符,或基于现有的流创建一个读取器。
MemoryStream --创建其支持存储区为内存的流。 MemoryStream 类创建这样的流,该流以内存而不是磁盘或网络连接作为支持存储区。MemoryStream 封装以无符号字节数组形式存储的数据,该数组在创建 MemoryStream 对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。
异步IO --不解释,看代码
网页流--代码