Qt:将文本添加到文件中

时间:2016-05-04 09:55:25

标签: c++ qt file

我想写一个文件然后我做了,但它总是写到最后一行。有没有办法让它写入第一行?例如,给定一个包含

的文件
apple
orange

我要添加“香蕉”;我希望文件成为:

banana  
apple
orange

我目前的代码是:

void Write (QString file)
{
    QFile sfile(file);
    if(!sfile.open(QFile::Append |QFile::Text))
    {
        return;
    }
    QTextStream out(&sfile);
    out <<"        "<<xscore<<"        "<<oscore<<endl;
    sfile.close();
}

如何更改此项以在文件开头插入文本?

1 个答案:

答案 0 :(得分:2)

append文件将始终添加at the end

如果你想插入第一行,你可以阅读当前文件内容(buffer),打开它进行写作并写下你的new content,然后是buffer

/编辑:

一个小例子看起来像这样......

QFile sfile(file);
sfile.open(QFile::ReadOnly | QFile::Text);
QByteArray buffer = sfile.readAll();
sfile.close();
sfile.open(QFile::WriteOnly | QFile::Text);
QTextStream out(&sfile);
out <<"        "<<xscore<<"        "<<oscore<<endl;
out << buffer;