Класс 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