读取文件的两种类型
来源:互联网 发布:金融学中的优化方法 编辑:程序博客网 时间:2024/05/16 08:29
int hugefile_rw(CString strFilePath){clock_t start, finish;//------------------------------------------------------内存映射方法;start = clock();//创建或打开文件内核对象;HANDLE fileH = CreateFile(strFilePath.GetBuffer(0), GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(fileH == INVALID_HANDLE_VALUE){cout<<"error in CreateFile"<<endl;return -1;}//创建一个文件映射内核对象;HANDLE mapFileH = CreateFileMapping( fileH,NULL,PAGE_READWRITE,0,0,TEXT("Resource")); if(mapFileH == NULL){cout<<"error in CreateFileMapping"<<endl;return -1;}//将文件数据映射到进程的地址空间;char * mapH = (char *)MapViewOfFile( mapFileH, FILE_MAP_ALL_ACCESS,0,0, 0); if(mapH == NULL){cout<<"error in MapViewOfFile"<<endl;return -1;}std::string buffer = mapH;//读取数据;char *buf = mapH;double k;int times = 300000*34;//关闭句柄;UnmapViewOfFile(mapH); CloseHandle(mapFileH); CloseHandle(fileH); finish = clock();//打印耗时;double d1 = (double)(finish - start)/ CLOCKS_PER_SEC;//------------------------------------------------------传统方法;start = clock();FILE *fp = fopen("D:\\code\\棋牌代码\\MDY棋牌项目\\运行\\debug\\unicode--2010\\res\\AllCityData.ini","r");if(fp == NULL){cout<<"error in fopen"<<endl;return -1;}for(int i = 1 ;i <= times; i++){fscanf(fp,"%lf",&k);}fclose(fp);finish = clock();double d2 = (double)(finish - start)/ CLOCKS_PER_SEC;}以上两种方式, 内存方式比传统方式速度快很多。
0 0
- 读取文件的两种类型
- unity3d中网格导入文件的两种类型
- 实现MFC的两种类型文件对话框
- 两种类型的注释
- 两种类型的员工
- Cookie的两种类型
- dstream的两种类型
- 两种类型的开发周期
- 两种类型的页面分析
- 逻辑读的两种类型
- 两种类型的Java程序
- VB窗体的两种类型
- SQL的两种类型转换方式
- 广播事件的两种类型。
- 两种类型的probe request
- 在asp.net中使用xml文件的两种类型及用法
- 两种IP文件的读取
- 资源文件的两种读取方式
- Eclipse导入已有的项目后项目报错的解决办法
- 127.0.0.1和0.0.0.0
- ios 关于Debug,ForBeta,Release 的那些小事。
- window下ionic创建WebAPP工程
- 【鼓捣树莓派】树莓派通过I2C总线连接LCD1602
- 读取文件的两种类型
- bzoj 2144 二分&lca 神题详解
- kafka介绍总结
- ajax
- Android中双击返回键退出应用
- js数组方法总结
- unix/linux more命令的实现
- 游戏玩家的留存率统计实现
- python判断字符串(string)是否包含(contains)子字符串的方法