QIODevice::write has an overload for QByteArray if this affects your decision. QDataStream might be worth a look at big data. In the end, it really is up to you, as various containers will work.
Edit:
I think that the basic input / output of files using any buffer that you prefer is probably all that you need. Use objects like QFile , QDataStream , QByteArray , etc. You can read and process only parts of a file using circular buffers to save memory, especially when it comes to audio, video, or something that lends itself to streams. If there is a known file structure, such as XML, CSV, etc., Which also simplifies partial reading and processing, since you can follow lines or tags by tags.
Memory mapped files use virtual memory to achieve faster I / O, mainly by making a copy of the file on disk in the virtual memory segment, which can then be used by the application as if it were just process memory. The ability to process the file as a process memory allows you to do in-place editing, which is faster than having to look for a position from the beginning of the file and faster than making OS-specific API calls and working with reading / writing to the hard drive. There, as a rule, there is a lot of overhead for files with memory mapping, and there are some possible limitations depending on how paging is implemented on your target platform or what architecture you use. In Qt, you will have to create your own objects for using memory-mapped files, and, I believe, linux systems support this functionality better than windows.
Ajg85 source share