写入 QTextStream

Writing to QTextStream

这段代码完成后,我的 QTextStream 为空:

QString line1 = "This is line one";
QString line2 = "This is line two";
QString line3 = "This is line three";

QString outputFilename = "temp.txt";
QFile outputFile(outputFilename);
outputFile.open(QIODevice::WriteOnly);
outputFile.open(QIODevice::ReadWrite);  // This fixes the problem
  QTextStream out1(&outputFile);
   out1  << line1 << endl;
   out1  << line2 << endl;
   out1  << line3 << endl;

outputFile.flush();
QString temp = out1.readAll();           
mainclipboard->setText(temp);
outputFile.close();

这里,QString temp 是空的。我错过了什么?

感谢海德的回答

您以只写方式打开支持 QTextStream 的文件,因此仅出于这个原因读取就应该失败。只需更改打开模式即可。

还要考虑您正在读取的文件中的位置...使用 pos() 方法检查它,它应该告诉您文件位置是写入结束的位置。所以在阅读之前 seek()

由于您是在单个 QTextStream 上操作,因此不需要冲洗。如果您有单独的对象用于读取和写入,那么您需要刷新以确保数据写入 OS(刷新 QTextStream,这也会刷新文件,如 [=15 中所述) =]).