现在我有一个txt文件,有很多行数据,现在我想修改前3行的数据,(只修改前三行),请问要怎么做呢?
我看到一段话,大家看对不对:
QFile data("file.txt");
if (data.open(QFile::WriteOnly | QIODevice::Truncate)) {
QTextStream out(&data);
out << "The answer is " << 42;
}
我们在这里使用了 QFile::WriteOnly | QIODevice::Truncate,也就是以只写并且覆盖已有内容的形式操作文件。注意,QIODevice::Truncate 并不是将文件内容清空,而是在文件开头处开始写入。要理解这一点,假设原文件内容是1111111111,我们想要写入222,如果设置为 QIODevice::Append,则处理结果将会是 1111111111222,这是很容易理解的;如果设置为 QIODevice::Truncate,那么文件内容将会是 2221111111。
我试了一下,发现不对,它的效果还是像先把整个文件清空再写入新数据。
大家有什么方法呢?