QBuffer позволяет получить доступ к QByteArray, используя интерфейс QIODevice. QByteArray обрабатывается как стандартный файл с произвольным доступом. По умолчанию при создании QBuffer создается внутренний буфер QByteArray. К которому можно получить доступ напрямую, вызвав buffer(). Также можно использовать QBuffer с существующим QByteArray, вызвав setBuffer() или передав свой массив конструктору QBuffer. Для этого вызвав open(), чтобы открыть буфер. Затем write() или putChar() для записи в буфер и read(), readLine(), readAll() или getChar() для чтения из него. Для получения размера size() который возвращает текущий размер буфера, так же можно искать произвольные позиции в буфере, вызывая seek(). Для закрытия, вызываем close().
Фрагмент кода для демонстрации работы:
QByteArray byteArray("abc");
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
buffer.seek(3);
buffer.write("def", 3);
buffer.close();
В QByteArray добавится три символа. И будет следующая последовательность:
abcdef
