如何在QTextstream的开头写一个新行?
我正在向后追踪二叉树并将结果写入日志文件。我希望根节点成为列表中的第一行。简单地追加线条会导致相反的顺序。我需要做的是在文件顶部添加新行。
以下是我所得到的简化示例:
QFile mFile("fileName.csv");
QTextStream out(&mFile);
if (!mFile.open(QFile::WriteOnly | QFile::Text)){
qDebug() << " Could not open foundPath file";
return;
}
int cursor = 10;
while (cursor > 0){
out << cursor << "\n";
cursor--;
}
结果显然是10,9,......,1,但我想要1,2,......,10。
答案 0 :(得分:2)
你不能覆盖&#34;第一行&#34;,因为文件不是按行存储的,而是作为字节后的字节存储;关于换行没什么特别的。因此,如果您用较长的行替换文件的第一行,则会覆盖第二行的部分内容,例如。
你可以读取整个文件,并在重写剩下的文件之前添加第一行,但是一旦你的日志文件变大,这将非常缓慢并且资源紧张。
正确的方法显然是反转显示,而不是日志。