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