0

此代码完成后,我的 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 是空的。我错过了什么?

感谢海德的回答。

4

1 回答 1

0

您打开支持QTextStreamas write only 的文件,因此仅出于这个原因读取应该会失败。只需更改打开模式即可。

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

由于您在 single 上操作QTextStream,因此不需要冲洗。如果您有单独的对象用于读取和写入,那么您需要刷新以确保将数据写入操作系统(刷新QTextStream,这也刷新文件,如docs 中所述)。

于 2016-10-18T05:12:22.217 回答