流与读写器

FileStream fss = File.OpenRead(@"d:\a.dll");

FileStream fsd = File.OpenWrite(@"d:\b.dll");

int bytesRead = 0;

while ((bytesRead = fss.Read(buffer, 0 , bufferSize)) > 0)

{

    fsd.Write(buffer, 0, bytesRead);

}

fss.Close();

fsd.Close();

 

 

Stream si = File.OpenRead(@"d:\a.dll");

Stream so = File.OpenWrite(@"d:\b.dll");

BufferedStream bsi = new BufferedStream(si);

BufferedStream bso = new BufferedStream(so);

while ((bytesRead = bsi.Read(buffer, 0 , bufferSize)) > 0)

{

    bso.Write(buffer, 0, bytesRead);

}

bio.Flush();

bsi.Close();

bso.Close();

 

TextReader两个子类:StreamReader和StringReader

  • x.Read为从x中读取
  • y.Write为往y中写入
  • 被写入的流可以调用Flush方法
  • 流通常都没有Open方法,也不需要Open
  • 流都有Close方法,且必须调用
  • 使用缓冲流(BufferedStream)会提高效率,因为你自定义的buffer大小不一定是正合适的
  • 流可以叠加、嵌套,可以认为有内在流和外部流之分,当调用外部流的Close方法时,它会自动调用内在流的Close方法
  • 流本身可以认为就是字节流,为了使用方便,我们通常会用...Reader和...Writer
  • 构造...Reader的方法通常有两种:1 File.OpenText类,2 StreamReader sr = new StreamReader(源流)
原文地址:https://www.cnblogs.com/teamleader/p/988359.html