Я пытаюсь многократно писать и читать в / из QBuffer
объекта через QTextStream
.Сначала я создаю оба объекта:
QBuffer b;
b.open(QIODevice::ReadWrite);
QTextStream s(&b);
// Setup text stream here
Затем я записываю три разные части информации и читаю их обратно:
s << "Test" << 666 << endl << flush;
s.seek(0);
qDebug() << s.readAll();
s << "X" << endl << flush;
s.seek(0);
qDebug() << s.readAll();
s << "Test" << 777 << endl << flush;
s.seek(0);
qDebug() << s.readAll();
Конечно, я не получаю ту часть данных, которую я написал непосредственно перед этим., но накопленные данные:
"Test666\n"
"Test666\nX\n"
"Test666\nX\nTest777\n"
Я мог бы сделать вызовы с адаптивным поиском, чтобы получить правильные данные, но я не хочу, чтобы QBuffer
до рос бесконечно ,
Я пробовал s.reset()
вызов между записями, но результат тот же.Вызов reset()
или open()/close()
непосредственно в буфере дает искаженный результат (который ожидается, так как поток обойден):
"Test666\n"
"X\nst666\n"
"Test777\n"
Я мог бы, вероятно, построить новый буфер для каждого цикла, открыть его иприсоедините его к потоку, но это медленно.
Есть ли правильное и быстрое решение для этого варианта использования?