c++ - Qt:将文本添加到文件中

标签 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();
}

我应该如何更改它以在文件开头插入文本?

最佳答案

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/

相关文章:

c++ - 在 C++ 中从文件中读取 double 的最快方法

qt - QAbstractListModel insertRows 无法正常工作

c++ - 在 C++ 中禁用警告

c++ - lua函数到C++函数

c++ - sqlite3 C API 不释放 sqlite3_close 上的内存

visual-studio - VS2008:禁用询问是否重新加载IDE外部更改的文件

java - 如何使用 SnakeYaml 写入 YAML 文件?

android - 使用 RandomAccessFile 重写内容

C++ 辛 : don't show the newline

c++ - Qt 私有(private) API 未解析的外部符号