文件数据的快速读取

rsbase2008 2008-11-04 09:52:43

我有一个二进制数据文件,2千多万的整型数据,查找的时候我已经计算出该数据是第几个整型数据,我发现用seekg(n, pos)函数每次都是从文件头一个一个字节的数到该位置的,这对我反复的随机查找数据浪费很多时间,能否有快捷的办法迅速读出该位置的数据?
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rsbase2008 2008-11-05
  • 打赏
  • 举报
回复
谢谢各位,我用QT库函数基本解决,从文件到内存就是速度慢,但暂时可以承受
lily604 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoqi2007 的帖子:]

查找的时候我已经计算出该数据是第几个整型数据[/Quote]

那就用HASH表吧
killbug2004 2008-11-04
  • 打赏
  • 举报
回复
内存映射文件访问文件
CreateFile
CreateFileMapping
MapViewOfFile
使用以上三个API,具体可以MSDN或google,网上很多
rsbase2008 2008-11-04
  • 打赏
  • 举报
回复
大哥能简单介绍一下mmap文件内存映射的原理不?
redleaves 2008-11-04
  • 打赏
  • 举报
回复
最直接的办法,就是把文件全读进来,在内在里找...内存映射文件就是这种形式..
如果文件太大,可以分段读取...根据读写频度做缓冲.
如果文件大到上面的方式都不能处理或是性能无法满足...你可以做分页机制.
如果分页都不行,那只有改用可以使用更多内存的系统了...
xhs_lh04 2008-11-04
  • 打赏
  • 举报
回复
mmap文件内存映射吧

64,439

社区成员

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

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