Класс QBuffer
Оглавление
Класс QBuffer унаследован от QIODevice, и представляет собой эмуляцию файлов в памяти компьютера (memory mapped files). Это позволяет записывать информацию в оперативную память и использовать объекты как обычные файлы (открывать при помощи метода open() и закрывать методом close()). При помощи методов write() и read() можно считывать и записывать блоки данных. Можно это так же сделать при помощи потоков, которые будут рассмотрены далее. Рассмотрим пример использования класса QBuffer:
QByteArray arr;
QBuffer buffer(&arr);
buffer.open(QIODevice::WriteOnly);
QDataStream out(&buffer);
out << QString("Message");
Как видно из этого примера, сами данные сохраняются внутри объекта класса QByteArray. При помощи метода buffer() можно получить константную ссылку к внутреннему объекту QByteArray, а при помощи метода setBuffer() можно устанавливать другой объект QByteArray для его использования в качестве внутреннего.
Класс QBuffer полезен для проведения операций кэширования. Например, можно считывать файлы растровых изображений в объекты класса QBuffer, а затем, по необходимости, получать данные из них.
Читать далее: Класс QTemporaryFile