| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4107 人关注过本帖, 1 人收藏
标题:求助,如何快速读取大文本文件
只看楼主 加入收藏
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
结帖率:100%
收藏(1)
 问题点数:0 回复次数:8 
求助,如何快速读取大文本文件
请看附件里面是1个100多K的起点小说,TXT文档,我想弄个txt阅读器,放了个richTextBox,最快的办法就是
 richTextBox1.LoadFile(fileName, RichTextBoxStreamType.PlainText);
但是此法读取小说发现没有换行,无法阅读.
结果就想用流的方式.
                FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                if (fs.CanRead)
                {
                    //读取时加入编码信息,否则读取汉字会乱码
                    StreamReader sr = new StreamReader(fs, Encoding.Default);
                    //毛病是没有换行
                    //richTextBox1.Text = sr.ReadToEnd();
                    string strline = sr.ReadLine();
                    while (strline != null)
                    {
                        strline = sr.ReadLine();
                        richTextBox1.Text += strline + "\n";
                    }
                    sr.Close();

发现速度奇慢无比.结果又用上异步读取,发现还是会造成程序无响应,附上程序源码请各位大大指点指点.如何快速读取大的txt和解决无响应问题?

b.rar (50.83 KB)


txt阅读器.rar (123.7 KB)
搜索更多相关主题的帖子: 文本文件 
2008-02-23 16:22
恋轩念伊人
Rank: 5Rank: 5
来 自:湖南衡阳
等 级:贵宾
威 望:19
帖 子:643
专家分:0
注 册:2008-2-23
收藏
得分:0 
同感
我也遇到这样的问题,希望那位能帮忙
2008-02-24 10:25
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
收藏
得分:0 
你这个代码不是因为读文件慢,而是因为你用richTextBox1.Text += strline + "\n";
这个操作是很慢的,如果用RichTextBox.AppendText(strline + "\n")会快很多
还有可以用richTextBox1.Text = sr.ReadToEnd().Replace("\r\n", "\n");//可以解决不换行的毛病

OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2008-02-24 20:48
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
楼上的正解……

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-25 13:09
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
RichTextBox.AppendText
要使用添加,不要每次都链接字符串,那样会每次新建一个字符串,然后原来的等待GC释放

jorden008@
2008-02-25 14:19
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
可以尝试读取过程用StringBuilder进行,完成后再生成一个String

女侠,约吗?
2008-02-27 00:35
恋轩念伊人
Rank: 5Rank: 5
来 自:湖南衡阳
等 级:贵宾
威 望:19
帖 子:643
专家分:0
注 册:2008-2-23
收藏
得分:0 
原来如此
这个真准,我看棒啦个棒

我不是一个随便的人,我随便起来不是人我哦。信不?
2008-02-27 16:38
lmytrade
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-4
收藏
得分:0 
长见识了。
2008-03-05 11:27
恋轩念伊人
Rank: 5Rank: 5
来 自:湖南衡阳
等 级:贵宾
威 望:19
帖 子:643
专家分:0
注 册:2008-2-23
收藏
得分:0 
回复 8# 的帖子
有道理

我不是一个随便的人,我随便起来不是人我哦。信不?
2008-03-09 04:59
快速回复:求助,如何快速读取大文本文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018143 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved