我正在尝试编写一个程序,它将创建一个文本文件并编写一个我从串口读取的字符流。我只是想了解如何让代码连续写入数据而不是覆盖以前写入的数据,因为我需要它来保持每个字符的发送。我把这段代码写成了测试,但我不能让它继续写文本。它写一次然后停止。
#include <QFile>
#include <QTextStream>
int main() {
int test = 0;
while(test < 2){
QString filename = "Data.txt";
QFile file(filename);
if (file.open(QIODevice::ReadWrite)) {
QTextStream stream(&file);
stream << "one thing to test" << endl;
test++;
}
}
}
有人有任何建议吗?
-Thanks
答案 0 :(得分:2)
默认情况下,使用QIODevice::ReadWrite
打开将在写入时截断文件。根据{{3}},QIODevice::Append
将打开文件,以便在文件末尾进行写入。
如果你真的想要两者进行读写,那么在写作之前你可以QIODevice::seek()
到文件的末尾。