用fstream定义一个对象,打开一个流文件,例如:
fstream file;
char *str=new char[2];
file.Open("aaa.dat",ios::in|ios::binary)
while(!file.eof())
{
file.read((str,2);
file.seekp(2,ios::cur);//因为每四位的后两位都为空
....... //后面操作
}
delete [2]str;
但是如果这个流文件很大,例如10MB,那么这样读取文件速度很慢,读完要花很长时间,在下想通过调用某一个函数直接把流文件载入内存,以大大提高文件的读取速度,请问该调用哪个函数有这种功能?或者大家有更好的办法提供文件读取速度?
在下也尝试过用CFile类定义对象来读取文件,但觉得比fstream方法还要慢。
另外,怎样设置fstream对象缓冲区及其大小?我调用file.setbuf(char *,512)后发现居然上面的程序读取不到内容。
请大家指点,谢谢!
fstream file;
char *str=new char[2];
file.Open("aaa.dat",ios::in|ios::binary)
while(!file.eof())
{
file.read((str,2);
file.seekp(2,ios::cur);//因为每四位的后两位都为空
....... //后面操作
}
delete [2]str;
但是如果这个流文件很大,例如10MB,那么这样读取文件速度很慢,读完要花很长时间,在下想通过调用某一个函数直接把流文件载入内存,以大大提高文件的读取速度,请问该调用哪个函数有这种功能?或者大家有更好的办法提供文件读取速度?
在下也尝试过用CFile类定义对象来读取文件,但觉得比fstream方法还要慢。
另外,怎样设置fstream对象缓冲区及其大小?我调用file.setbuf(char *,512)后发现居然上面的程序读取不到内容。
请大家指点,谢谢!
解决方案 »
- 看一个DLL导出类的问题——为何出现LNK2001
- 多文档视图里建立CListBox
- 主程序隐藏后全局钩子为什么无效
- CListBox::AddString显示出错,请教。
- 关于PopupMenu的问题
- 奇怪问题,请高手帮忙!谢谢!
- 网上下载的压缩动态链接库ZLIB.DLL为什么不能用?
- 菜鸟的问题:为什么不能用CString类型的变量
- vc为asp编写上传组件的问题
- Release和Debug版本的问题。
- gina问题,一个MSDN中的gina例子也存在的问题。
- 链接错误:nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctyp
char * buf=new char[512];
file.setbuf(buf,512);
把其放在file.Open("aaa.dat",ios::in ¦ios::binary);这句后面程序就读不出文件的数据了。
请问在我的程序中具体该怎样使用setvbuf(FILE *stream,char *buf,int type,unsigned size)或setbuf(FILE *stream,char *buf)函数?我用的的fstream流对象而不是FILE对象.
还有,怎样内存映射文件?
谢谢!