如果把一段段写入dataset,然后再把数据一次性从dataset导出到一个个htm文件会提高效率?谢谢

解决方案 »

  1.   

    byte[] buffer = new byte[150240];
    数组大小设小点
      

  2.   

    原来是1024的。我是感觉太慢才调大的,并且在2台机器上try过了,都是这么慢我的完整代码public void Start()
    {
    WebRequest wrq = WebRequest.Create("http://www.test.com");
    HttpWebRequest hwrq = wrq as HttpWebRequest;
    hwrq.Referer = "http://www.test.com";
    hwrq.AllowAutoRedirect = false;
    hwrq.UserAgent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)";
    WebResponse wrs = hwrq.GetResponse();
    Stream respStream = wrs.GetResponseStream(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); // Pipe the stream to a higher level stream reader with the required encoding format. 
    // StreamReader readStream = new StreamReader( respStream, encode );
    StreamReader readStream = new StreamReader( respStream, System.Text.Encoding.ASCII ); writeBinaryStreamToFile(respStream);
    respStream.Close();
    wrs.Close(); } private static void writeBinaryStreamToFile(Stream strm)
    {
    BufferedStream bufIn;
    FileStream outStream;
    BufferedStream bufOut; try
    {
    byte[] buffer = new byte[1024];
    bufIn = new BufferedStream(strm); int bytes = bufIn.Read(buffer, 0, buffer.Length);//位数


    outStream = File.Create(@"c:\testtemp\a1\test.htm");
    bufOut = new BufferedStream(outStream); while (bytes > 0) 
    {
    bufOut.Write(buffer, 0, bytes);
    bytes = bufIn.Read(buffer, 0, buffer.Length);
    }

    bufOut.Flush();
    bufOut.Close();
    outStream.Close();
    bufIn.Close();
    strm.Close();
    }
    catch
    {}
    }
      

  3.   

    我调试过了,在while (bytes > 0) 前设了断点,到达的速度非常快,应该不是阿
      

  4.   

    网站太慢,Read被阻塞。在while ( bytes > 0 )的时候,才刚刚读了1K的数据啊。
      

  5.   

    搂主如若不信,用StreamReader类的ReadToEnd对网站读一下就知道了。
    实际上很多时候没必要自己来读写流。用StreamReader和StreamWriter更简单。