2013-09-26 37 views
0

代碼可在下面找到。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-> write(...)後,一切都很好,但爲什麼只在第二次?

+0

你的代碼應該做什麼? – vahancho

回答

3

文件被緩衝,執行write並不一定意味着數據將在磁盤上結束。要獲得所有到目前爲止寫入文件中的數據,你需要做以下任一操作:

  1. flush()文件,或
  2. close()文件,或
  3. 破壞QFile實例(這裏刪除fd)。