0

我把这段代码写成一个函数,每次调用这个函数,我都想写入文件。但是这个函数只向文件写入一次。每当我从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();
4

1 回答 1

6

当该行outputFile.open(QIODevice::WriteOnly);打开文件时,它会替换文件中已经存在的所有内容。尝试将行替换为:

outputFile.open(QIODevice::Append);

以将数据附加到文件中存在的任何内容的模式打开它。

请注意,为每一行打开文件是一种低效的解决方案,尤其是当您要编写很多很多行时。打开文件一次,然后在关闭文件之前将所有单词写入文件,会更快。

于 2012-12-24T06:21:29.740 回答