0

代码可以在下面找到。

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-> write(...) 之后一切都很好,但为什么只有第二次?

4

1 回答 1

3

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

  1. flush()该文件,或
  2. close()该文件,或
  3. 销毁QFile实例(这里通过删除fd)。
于 2013-09-26T21:28:16.593 回答