QBuffer

Автор: | 31 июля, 2019

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