写一个新的文本,而不会丢失以前的值。在Qt

时间:2016-11-06 20:38:07

标签: c++ qt qfile qiodevice

如何在不丢失先前值的情况下编写新文本

    QString mFilename2 = "bin/bin_2.txt";
File_main_Editor.stWrite(mFilename2,okline_Edit);
void stWrite(QString Filename,QString stringtext){
QFile mFile(Filename);

if(!mFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
    QMessageBox message_file_Write;
    message_file_Write.warning(0,"Open Error"
           ,"could not to open file for Writing");
    return;
}
QTextStream out(&mFile);
out << stringtext;
out.setCodec("UTF-8");

mFile.flush();
mFile.close();
}

每次初始化okline_Edit stWrite函数在文件中调用一个新值.txt以前的值丢失了。

或换句话说

enter image description here

2 个答案:

答案 0 :(得分:0)

您使用QIODevice::WriteOnly打开文件,该文件将开始编写...从开始,您需要使用QIODevice::Append

打开它

答案 1 :(得分:0)

您需要在QIODevice::Append文件时设置open()

mFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)

此外,如果您希望每个追加都在新行上,您还必须插入\n