首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

About CFile读写资料

2012-09-03 
About CFile读写文件将接收到的数据放在puffer中,将puffer中的数据写入文件。问题出现了,接受数据的速度很

About CFile读写文件
将接收到的数据放在puffer中,将puffer中的数据写入文件。


问题出现了,接受数据的速度很快。2分钟经过buffer的数据大约5M,但是存放的是文件就只有20k。。。


这里问题有可能处在那里呢?



[解决办法]
你没
WriteFile.SeekToEnd();

C/C++ code
int i = WriteFile.Open(FilePathName.GetBuffer(),CFile::modeCreate  |CFile::modeNoTruncate | CFile::modeWrite);                            //Count++;            Count = Count+dwBufSize;//这里接收到的大小和写入的大小相差太大            WriteFile.SeekToEnd(); //注意到最后再写            WriteFile.Write(pBuffer, dwBufSize); // Write it            WriteFile.Flush();            //TRACE("%d\n",Count);                        pBuffer = NULL;            delete pBuffer;
[解决办法]
你是想表达流式读取是吧?但是你的理解可能有误。

“我是这样想的,只要写的赢,就直接写,不中转一次,效率更高点”

内存数据读写速度比IO(硬盘读写)要快很多倍,建立缓冲区就是为了防止有数据就立即写入硬盘,减少IO操作的次数,每一次IO的性能开销比写内存大得多。因此,建立一个缓存存储数据是很有必要的。从硬盘读取数据也是一样。但是缓存的大小不宜太大,适合就行。这些在频繁数据操作或者大数据量的设计效果尤为明显。

热点排行