怎么加快读文件的速度

mnkoo 2011-11-06 01:14:18
string file = @"c:\test.txt";
StreamReader sr = new StreamReader(file);

while (!sr.EndOfStream)
{
//逐行读取
}
文件几个G,能加快读的速度吗,比如使用多线程。
...全文
582 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonespace 2011-11-07
  • 打赏
  • 举报
回复
按照文本方式读取效率低,可以考虑用二进制方式读取,
阿非 2011-11-07
  • 打赏
  • 举报
回复
阿非 2011-11-07
  • 打赏
  • 举报
回复
使用内存映射文件
mnkoo 2011-11-07
  • 打赏
  • 举报
回复
lucuen检索文件是怎么做的,他的效率换不错
冰筑过客 2011-11-06
  • 打赏
  • 举报
回复
我是来骗积分的
zwlj520 2011-11-06
  • 打赏
  • 举报
回复
几个g,却是太夸张了,要想速度,估计只有设定一定的分段,然后一段段读取。
qq598235031 2011-11-06
  • 打赏
  • 举报
回复
可以考虑读一定字节的,逐步读完这个文章。
sdl2005lyx 2011-11-06
  • 打赏
  • 举报
回复
“文件几个G,能加快读的速度”,单个文件这么大,不论用什么方式,都要消耗cpu足够时间!

其实,问题就在于此:对于数据库文件,我们通过分区、索引、分表的方式进行数据查询,而单个的txt文件,
没有任何的辅助查询方式,所以,访问效率是很低的。

换个思路:根据txt里数据规律,分成若干小txt文件,或者把数据转移到数据库中!
liangboone 2011-11-06
  • 打赏
  • 举报
回复
几个G的文件,你的内存搞的定吗?
还是一块一块的读取,再分段处理吧。
黄亮 2011-11-06
  • 打赏
  • 举报
回复
 sr.ReadBlock()

这个可以定位读,不知道能不能解决你的问题。
晏子 2011-11-06
  • 打赏
  • 举报
回复
你的txt几个G,如果是小说的话,多半你的余生都看不完了!
ycproc 2011-11-06
  • 打赏
  • 举报
回复
除了IO 还能有什么别的方式
要不你帮忙读
mnkoo 2011-11-06
  • 打赏
  • 举报
回复
文件比较大不能直接放内存操作
想个办法能快速把文件扫描完。。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧