Qt超大文本文件读取

Qt读取,显示几百M甚至几个G的超大文本文件时,调用QFile::open()读取,容易出现加载卡死。

对此,可以调用QFile::map()反射内存。

uchar *QFileDevice::map(qint64 offset, qint64 size, QFileDevice::MemoryMapFlags flags = NoOptions)

Maps size bytes of the file into memory starting at offset. A file should be open for a map to succeed but the file does not need to stay open after the memory has been mapped. When the QFile is destroyed or a new file is opened with this object, any maps that have not been unmapped will automatically be unmapped.
The mapping will have the same open mode as the file (read and/or write), except when using MapPrivateOption, in which case it is always possible to write to the mapped memory.
Any mapping options can be passed through flags.
Returns a pointer to the memory or 0 if there is an error.

map()的意思就是将文件从offset位置开始,到size字节的数据映射到内存中。


版权声明:本文为u013015629原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。