C#--几个数据流Stream;StreamReader;StreamWriter;MemoryStream;BufferStream;

命名空间:System.IO;

Stream:

      各种流的基类,不能时行查找操作,Position属性不能修改。读取时不Position不会自动移动,

           HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(new Uri("http://www.baidu.com/"));
            Stream stream = ((HttpWebResponse)webreq.GetResponse()).GetResponseStream();

                 MemoryStream ms = new MemoryStream();
            stream.CopyTo(ms);把Stream流Copy到MemoryStream。这样可以进行查找操作了。

            stream.ReadByte();从其中读取一个字节,并且把流的位置向前移动一个字节。

MemoryStream

         把字节数组保存到流中:Byte []b=new byte[4];

            ms.ReadByte()把数据从MemroryStream内存流中读取一个字节出来。

             ms.Position = 3;MemroyStream支持流的查找操作,Position会随着读取和写入流而自动变化。
            byte []b = new byte[30];字节数组,
            ms.Read(b,0,30);把MemeoryStream流中的数据写入到缓冲区b中,从缓冲区的0位置开始,写入30字节。
            byte [] byt=ms.ToArray();把流MemoryStream保存到字节数组中。这时Position不会变化,与之没有关系,  也就是当Position在流中间的某个位置时,也能把流中所有的数据保存 到字节中。

StreamReader
     读取流
    StreamReader sr = new StreamReader(stream);用流Stream来初始化读取流StreamReader。
     string str = sr.ReadToEnd();把流中的数据读取出来,形成并保存到字符串。
 StreamWriter
 写入流
 StreamWriter sw = new StreamWriter(stream);以Stream流来初始化StreamWriter流;
 sw.Write(str);把字符串写入流StreamWriter中。

原文地址:https://www.cnblogs.com/ddx-deng/p/3755819.html