这样行得通吗?
QString bozo;
QFile filevar("sometextfile.txt");
QTextStream in(&filevar);
while(!in.atEnd()) {
QString line = in.readLine();
bozo = bozo + line;
}
filevar.close();bozo会成为sometextfile.txt的全部吗?
发布于 2013-04-05 08:46:31
为什么还要逐行阅读呢?您可以对其进行更多的优化,并在向其添加行时减少不必要的字符串重新分配:
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return;
QTextStream in(&file);
QString text;
text = in.readAll();
file.close();发布于 2013-04-05 09:21:54
正如ddriver提到的,您应该首先使用file.open(…);打开文件,而不是这样,是的,bozo将使用您已有的代码包含整个文件。
在ddriver的代码中需要注意的一件事是,text.reserve(file.size());是不必要的,因为在下面的代码行中:
text = in.readAll();这将用一个新字符串替换text,因此对text.reserve(file.size());的调用将只做未使用的工作。
https://stackoverflow.com/questions/15824043
复制相似问题