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