是这样的 俺最近用C# 在开发一个读书软件自己用~ 结果发现 如果TXT得 大小超过300KB 读取就要等待1分多种。不要惊讶 因为不是在电脑上 而是在手机上 手机的GPU主频 是400MHZ的 内存是64MB的 其实我觉的这个配置 读那么大的文件 应该是没有问题的 (因为俺家的电脑以前主频就是800MB 内存也不过64MB而已~~~~~) 但是既然现在读TXT的速度那么慢 还是想在这里 请教一下 各位 如何能优化 下面是我自己写的 会很慢 麻烦看看能不能 改改 起到画龙点睛的作用哈~~~谢啦
       OpenFileDialog openFile = new OpenFileDialog();//打开文件
       openFile.Filter = "图书文件(*.TXT)|*.txt";//过滤只能选择TXT
        
            if (openFile.ShowDialog() == DialogResult.OK) { //假设用户点击选择
                    string strRes = " ";
                    textBox1.Text = "";
                    StreamReader sr = new StreamReader(openFile.FileName, Encoding.Default);//读取选择的TXT文件
                    textBox1.Text = "正在读取中,请稍等片刻......";
                    strRes= sr.ReadToEnd();//从头读到尾的数据交给STRING
                    textBox1.Text = strRes;
                    sr.Close();
}

解决方案 »

  1.   

    本帖最后由 net_lover 于 2010-01-08 08:56:37 编辑
      

  2.   

    不知道File.ReadAllText 方法 性能咋样
      

  3.   

    我现在不需要做什么控制 就是希望能从头读到尾 把TXT给我全显示到textbox就行 所以一楼的方法 虽然好 可是   不是我需要的~~~ 
      

  4.   

    LZ应该先看看究竟是这句慢,
    strRes= sr.ReadToEnd();//从头读到尾的数据交给STRING 还是这句慢
    textBox1.Text = strRes; 再具体想优化的策略。
      

  5.   

    你好谢谢你的建议 看过了 是strRes= sr.ReadToEnd();这句 读取慢 因为是手机上的GPU 不是 电脑
      

  6.   

    用string来存超级慢,换成stringbuilder
      

  7.   

    很奇怪,居然是读流慢!复制一个300K的文件也会很慢么?上面13、14楼说的也是一个办法,不过恐怕有线程安全的问题,Invoke后最后还是要主线程来处理。
    复杂点的办法也有,可以根据用户的下拉条,定位流,然后再做处理。
      

  8.   

    我现在想写byte[]数组到文本文件里去,各位有什么好办法,我试过streamwriter和binarywriter,都不好,
      

  9.   

    你用 WORD 试试,也很慢的,先分页,打开前面的,然后后台继续读