概述:在处理数据量较大的文件时,往往需要使用文件映射技术,即虚拟内存。 通过文件映射之后,就可以像操作内存一样去直接操作文件。而不需要再调用文件读写方法了。
原理:给磁盘上的文件分配地址,类似内存的地址一样,对虚拟出来的内存的操作就是对文件的操作了。
// virtual memory
QFile file("../map.txt");
file.resize(64*1024);
file.open(QIODevice::ReadWrite);
uchar* ptr = file.map(0, 64*1024);
// write file
*ptr = 'a';//直接写,就像操作内存一样
ptr[1] = 'b';
ptr[2] = 'c';
// read file
uchar ch = *ptr;
file.unmap(ptr);
file.close();