c++读取几个G的大文本问题

问题描述

c++读取几个G的大文本问题

我通常都是用c++的ifstream打开文件流的,处理MB级大小的文本都可以读取,为什么我现在想以二进制的方式读取几GB的内容就不行了呢??求大神帮忙!!

解决方案

用windows的api函数,内存映射,逐块读取写入

 CreateFile :打开文件

GetFileSize : 获取文件尺寸

CreateFileMapping :创建映射

MapViewOfFile :映射文件

解决方案二:

用内存映射文件方式读取,CreateFileMapping

解决方案三:

用windows的api函数,内存映射,逐块读取写入

CreateFile :打开文件

GetFileSize : 获取文件尺寸

CreateFileMapping :创建映射

MapViewOfFile :映射文件

时间: 2024-10-03 04:23:06

c++读取几个G的大文本问题的相关文章

StreamReader.ReadLine()读取大文本内存无法释放

问题描述 直接上代码:using(Streamstream=File.OpenRead(@"d:\1.txt")){StreamReadersr=newStreamReader(stream);sr.ReadLine();sr.Close();}很简单的代码,有人可以告诉我为什么吗? 解决方案 解决方案二:"内存无法释放"的具体含义是什么呢?假设你有4G内存,有3G剩余内存,在.net程序运行这个进程时它占用了50M内存(这么一点点),而且1个小时之后也还是占用几十

MySQL---数据库从入门走向大神系列(九)-用Java向数据库读写大文本/二进制文件数据

介绍MySQL的文本和图形数据类型: Text 类型: 数据类型:描述 ------------------------------------------------------ char(size):保存固定长度的字符串(可包含字母.数字以及特殊字符).在括号中指定字符串的长度.最多 255 个字符. varchar(size):保存可变长度的字符串(可包含字母.数字以及特殊字符).在括号中指定字符串的最大长度.最多 255 个字符. 注释:如果值的长度大于 255,则被转换为 text类型

Oracle大文本在ASP中存取问题的解决

oracle|解决|问题 在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题. 一.运行环境: 1.Microsoft Windows 2000 Server + IIS 5.0 2.Oracle8i中文标准版 二.建立数据表: CREATE TABLE SYSTEM.TEST( BLOB LONG, ID NUMBER) / 三.源程序: 1.数据存入程序:test.asp <% '表单提交处

oracle+jsp中blob类型存储大文本问题解决方法

oracle 存储大文本一直是一个棘手的问题. 一.存数据库: <%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><%//定义变量java.sql.Connection conn; //数据库连接对象String sql;long id;ResultSet rs;

数据-菜鸟求教!C#大文本处理如何提速?

问题描述 菜鸟求教!C#大文本处理如何提速? 有个几百兆的文件,里面全是数据,每一行都要处理,如: GOTO / 8.39900, -4.61009, 115.00000 要转换成 LIN {E6POS: X 8.39900, Y -8.37946, 115.00000, A 0.000, B 0.000, C 0.000, E1 0.000} C_VEL 现在是小文件可以,数据量大了速度就非常慢,1M的都要7分钟才能处理完 解决方案 难怪代码慢,你还用了字符串相加. 你应该用 StringBu

测试TextKit渲染大文本的效率

测试TextKit渲染大文本的效率   TextKit可以用来做精美的电子书,而电子书通常都是txt格式的,那么渲染txt格式的文本的效率如何呢? 以下来进行测试. #import "RootViewController.h" #import "FontPool.h" #import "YXGCD.h" @interface RootViewController ()<NSLayoutManagerDelegate> @end @im

软件-优盘读取不出来,求大神帮我解决下,谢谢

问题描述 优盘读取不出来,求大神帮我解决下,谢谢 我优盘插别人电脑上能显示,我插自己的显示不了,别人优盘插我电脑上能显示,在驱动人生这个 软件上能显示外部驱动,但就是不显示优盘 解决方案 首先你打开控制面板,找到添加硬件,然后插入你自己的UPAN,然后下添加硬件下一步,跟着提示走,或者自己选择USB某个硬件驱动 解决方案二: 查看电脑的usb接口是都有问题,插入鼠标是否能用

javascript-用uploadify3.2怎么读取上传的文件名到文本框

问题描述 用uploadify3.2怎么读取上传的文件名到文本框 要去掉后缀名 'onSelect': function(e, queueID, fileObj) { $('#uploadify').uploadify('upload'); alert("文件名:" + fileObj.name + "rn" + "文件类型:" + fileObj.type ); }, <input class="form_title"

对于数据库大文本字段有什么好的优化方式

问题描述 我们网站把大文本内容存储在了数据库sqlserver企业版,用户会频繁的增加大文本记录,或者编辑这个大文本用户数多了会感觉网站卡卡的,用户反映还会有数据延迟,几分钟甚至几十分钟这个文本内容一般在1m左右大小,有几百k的,也有1m多的大概情况就是这样,服务器配置够好了,带宽也够了把大文本另外单独存储在磁盘应该是个办法,但现在这个办法不适用,除了这样,有什么其他好的优化方式吗 解决方案 解决方案二:拆表,或者通过程序判断记录达到一定级别新增表呢.解决方案三:引用1楼xiaojie_cp的回