QFile перезаписать только во второй раз
Код можно найти ниже.
QFile *fd = new QFile();
fd->setFileName("TEST.txt");
fd->open(QIODevice::ReadWrite);
if(fd->exists() == true){
ui->textEdit->append("OK");}
ui->textEdit->append(QString::number(fd->write("Additional string")));
В textEdit canvas я получаю количество записанных символов, но оно не отображается в файле. После второго вызова fd-> write(...) все нормально, но почему только во второй раз?
1 ответ
Решение
Файлы буферизируются, выполняя write
не обязательно означает, что данные окажутся на диске. Чтобы получить все данные, записанные так далеко в файл, вам необходимо выполнить одно из следующих действий:
flush()
файл илиclose()
файл или- уничтожить
QFile
экземпляр (здесь, удаливfd
).