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(源流)