我已经将此代码编写为一个函数,每次调用此函数时,我都希望写入文件。但是此函数仅向文件写入一次。每当我从Windows打开文件时,我只会发现一个单词写入文件。每次调用时如何连续写入文件?
/* Try and open a file for output */
QString outputFilename = "Results.txt";
QFile outputFile(outputFilename);
outputFile.open(QIODevice::WriteOnly);
/* Check it opened OK */
if(!outputFile.isOpen()){
qDebug() <<"- Error, unable to open" << outputFilename << "for output";
return ;
}
/* Point a QTextStream object at the file */
QTextStream outStream(&outputFile);
/* Write the line to the file */
outStream <<"\n"<< szTemp;//"Victory!\n";
/* Close the file */
outputFile.close();
[outputFile.open(QIODevice::WriteOnly);
行打开文件时,它将替换文件中已存在的所有内容。尝试将行替换为:
outputFile.open(QIODevice::Append);
以一种将数据附加到文件中任何内容的方式打开它。
请注意,为每一行打开文件都是一种低效的解决方案,尤其是当您要写入很多行时。打开文件一次,然后在关闭文件之前将所有单词写到文件中,会更快地工作。