如何提高文件读写速度?

Satan0629 2004-12-13 04:07:45
程序要读取一个文本文件,文件的纪录格式是固定的,且是定长记录,如下:
abcd,04,12,09,120.523,55,89
abcd,04,12,09,120.600,55,80
abcd,04,12,09,120.530,55,89
abcd,04,12,09,120.521,55,87
……
每次读取一条记录,从中选择特定位置的数据,完成一些列操作。
现在的问题是
(1) 文件的记录数目非常大,如何可以使运行速度快一点。
(2)另外,还想加一个 进度条,这需要得到文件的总记录数,有没有什么函数可以得到文本文件的记录数(如果遍历文件统计的话,又要增加时间开销)。
...全文
330 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjyu88 2004-12-13
  • 打赏
  • 举报
回复
提醒一下,还有一个函数rdbuf()可以使用.有时使用比较方便..如可以一下子输出全部文件的内容.
dark012002 2004-12-13
  • 打赏
  • 举报
回复
用2进制最快

再说下去就是数据结构的问题了....
sharkhuang 2004-12-13
  • 打赏
  • 举报
回复
这个问题很好。一般io操作都很忙!常用提高方法大家能总结吗?
koalapheonix 2004-12-13
  • 打赏
  • 举报
回复
用二进制读取

运行时会快的多

不过有一点你会对代码付出更多
xuzheng318 2004-12-13
  • 打赏
  • 举报
回复
现都读入,再一条一条处理!
tttx 2004-12-13
  • 打赏
  • 举报
回复
既然格式固定了就用结构数组进行读写,每个元素对应一条记录
beyondtkl 2004-12-13
  • 打赏
  • 举报
回复
FileMapping
goodluckyxl 2004-12-13
  • 打赏
  • 举报
回复
想使得的速度提高
读大块的数据然后处理
不要一条一条记录读处理

如果一条记录的字节数固定
可以由文件总大小 / 每条记录大小 = 记录数

64,635

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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