BinaryReader、BinaryWriter:
用特定的编码将基元数据类型读作二进制值。
                              ~~~~~~
以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。
  ~~~~~~
streamreader:
实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

解决方案 »

  1.   

    .NET Framework提供了一组用于在各种类型的流上执行操作的类。Stream是其中的主类,所有其他与流相关的类都由这个抽象类派生而来。
    因为流是数据的一个抽象化(即一个字节序列),要操纵这些字节序列,我们必须执行一些基本的操作,如读取、写入或者查找。利用Stream类,可以在流上执行二进制I/O操作。利用TextReader和TextWriter,可以执行字符I/O操作,而利用BinaryReader、BinaryWriter,则可以在基本类型上执行I/O操作。
      

  2.   

    我有幅图,可惜没有办法给你
    Wrox书《.NET网络高级编程》中40页图2-1Stream类结构,你上书店看看吧!
      

  3.   

    BinaryReader、BinaryWriter这两个类并不执行流,而是提供其他流对象的包装,BinaryReader、BinaryWriter可以对二进制数据进行额外的格式化,直接从相关的流中读写c#变量的内容.
    .net提供System.IO.MemoryStream来读写内存,而System.Net.Sockets.NetworkStrem处理网络数据,编写类可以从System.IO.Stream这个基类继承
    看一下继承关系图就明了了