如题代码如下
        private void button1_Click(object sender, EventArgs e)
        {
            FileStream F = new FileStream(@"D:\3.txt", FileMode.Create);//创建临时文件
            HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");//创HttpWebRequest
            Req.AddRange(1, 10);//定义其实和终止接受的范围(我只接受10个字节)            Stream ns = Req.GetResponse().GetResponseStream();//获得数据流
            byte[] data = new byte[10];//定义缓存区的大小
            int bj = ns.Read(data, 0, data.Length);//将数据写进缓存区 并且标记
            while (bj > 0)
            {
                F.Write(data, 0, bj);//将数据写进临时文件
                bj = ns.Read(data, 0, data.Length);//将数据写进缓存区
            }
            F.Close();
        }
//我用上面的代码 按理说应该只能收到10个字节的数据 为什么我还是完整的把百度html源码下载下来了???请教!

解决方案 »

  1.   

    while循环不要试试,可能是反复执行了Read方法,从而把所有数据都读出来了。
      

  2.   


    不要也一样    private void button1_Click(object sender, EventArgs e)
            {
                FileStream F = new FileStream(@"D:\3.txt", FileMode.Create);//创建临时文件
                HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");//创HttpWebRequest
                Req.AddRange(1, 10);//定义其实和终止接受的范围(我只接受10个字节)            Stream ns = Req.GetResponse().GetResponseStream();//获得数据流
                byte[] data = new byte[1000];//定义缓存区的大小
                int bj = ns.Read(data, 0, data.Length);//将数据写进缓存区 并且标记
                F.Write(data, 0, bj);//将数据写进临时文件
                 F.Close();
            }byte[] data = new byte[1000];//这里定义多大字节就读取多大的字节 汗死!!!不知道为什么!!