这会有用吗?
QString bozo;
QFile filevar("sometextfile.txt");
QTextStream in(&filevar);
while(!in.atEnd()) {
QString line = in.readLine();
bozo = bozo + line;
}
filevar.close();
bozo是sometextfile.txt的全部吗?
答案 0 :(得分:17)
为什么甚至逐行阅读?您可以稍微优化一下,并在向其添加行时减少不必要的字符串重新分配:
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return;
QTextStream in(&file);
QString text;
text = in.readAll();
file.close();
答案 1 :(得分:3)
正如ddriver所提到的,你应该首先使用file.open(…);
打开文件。除此之外,是bozo
将使用您拥有的代码包含整个文件。
ddriver代码中需要注意的一点是text.reserve(file.size());
是不必要的,因为在以下行中:
text = in.readAll();
这将使用新字符串替换text
,因此对text.reserve(file.size());
的调用刚刚完成了未使用的工作。