我想写入一个文件并且我做到了,但它总是写入最后一行。有没有办法让它写入第一行?例如,给定一个文件包含
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();
}
我应该如何更改它以在文件开头插入文本?
最佳答案
append
到一个文件总是会添加在最后
。
如果你想插入第一行,你可以读取当前文件内容(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;
关于c++ - Qt:将文本添加到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024306/