最近在练习C#程序中,有一个要做一个txt阅读器的小题目,忽然想起了我以前做的一个txt阅读器的小程序
这个程序由于个人能力限制,当初没有完善现在想来有点可惜,因为我当初做这个程序的时候学C#才一个星期,心血来潮就自己写了个小项目,而这个项目的功能也非常简单,就是读取txt文件,可以将txt文件拖动至右边窗口打开,也可以自己选择要打开的文件。
当初的设想是做到分页显示,后来一直没实现以至于两个翻页按钮和页码成了鸡肋,右边是treeview窗口,当初我的设想是遍历整篇文字,将章节信息整理到treeview上然后根据相应节点跳转至相应内容。
虽然没完善,让我发现了当初设计的一个问题,那就是读取太慢了。
当初我放弃这一项目的理由就是读取速度上,在当初测试的时候当读取大于10M的文件时用的时间太长了,加之我当初基础知识掌握的还不全面,基本上就放弃了继续修改的想法。
不过,好在我现在留存了当初的源码,在这里放出找一下症结:
StreamReader sr = new StreamReader(dialog.FileName, System.Text.Encoding.Default);
String line;
while ((line = sr.ReadLine()) != null)
{
textBox1.AppendText(line + "\r\n"); //文本框逐行读取
}
sr.Close();
问题就在逐行textbox的逐行读取,对于一个10M文件来说如果把行数全部读完那么它至少要读几十万行数