QFile仅在第二次覆盖

时间:2013-09-26 20:52:34

标签: qt 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画布上,我收到了写入字符的计数,但它没有出现在文件中。在第二次调用fd->之后写(...)一切都很好,但为什么只在第二次?

1 个答案:

答案 0 :(得分:3)

文件被缓冲,执行write并不一定意味着数据将最终在磁盘上。要将所有到目前为止写入的数据放入文件中,您需要执行以下任何操作:

  1. flush()文件或
  2. close()文件或
  3. 销毁QFile个实例(此处删除fd)。