[回顾] Stream读取并写入文件

        WebRequest webreq = HttpWebRequest.Create("http://www.baidu.com");
            WebResponse wrs = webreq.GetResponse();
            System.IO.Stream stream = wrs.GetResponseStream();

            byte[] TempData = new byte[1024];
            FileStream fs = new FileStream("baidu.html", FileMode.Create);

            //用此方法读取,最后一次读取时,可能存在重复数据。 当最后一次读取不足TempData定义长度时,不会覆盖TempData上一次读取数据后面的内容(如:本次数据只有500Byte,本次TempData内容为本次500 + 上次TempData的后524))。
            //故这样读取不可行
            //while (stream.Read(TempData, 0, TempData.Length) != 0)
            //{
            //    fs.Write(TempData, 0, TempData.Length);
            //    fs.Flush();
            //}
            

            //可以采用以下方法读取
            int i = 0;
            while ((i = stream.Read(TempData, 0, TempData.Length)) != 0)
            {
                fs.Write(TempData, 0, i);
                fs.Flush();//清除此流的缓冲区,使得所有缓冲的数据都写入到文件中,若不调用此方法,则在关闭下次write时或关闭流时写入文件。
            }
            fs.Dispose();
            stream.Dispose();
posted @ 2012-04-16 15:51  大笑江湖  阅读(551)  评论(0编辑  收藏  举报