如何在Qt中连续写入文件?

问题描述 投票:0回答:1

我已经将此代码编写为一个函数,每次调用此函数时,我都希望写入文件。但是此函数仅向文件写入一次。每当我从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();
qt qt4
1个回答
6
投票

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

outputFile.open(QIODevice::Append);

以一种将数据附加到文件中任何内容的方式打开它。

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

© www.soinside.com 2019 - 2024. All rights reserved.