如何从QTextStream生成QString?

如何从QTextStream生成QString?,qt,qstring,Qt,Qstring,这样行吗 QString bozo; QFile filevar("sometextfile.txt"); QTextStream in(&filevar); while(!in.atEnd()) { QString line = in.readLine(); bozo = bozo + line; } filevar.close(); bozo会是sometextfile.txt的全部吗?为什么还要逐行阅读?您可以进一步优化它,并在添加行时减少不必要的字符串重新

这样行吗

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(…)打开文件
除此之外,yes
bozo
将使用您拥有的代码包含整个文件

ddriver代码中需要注意的一点是
text.reserve(file.size())是不必要的,因为在以下行:

text = in.readAll();

这将用新字符串替换
text
,以便调用
text.reserve(file.size())
会做一些未使用的工作。

如果您没有打开文件,请查看我的答案。谢谢您的回答。我正在构建一个BB10应用程序,不幸的是我无法让它工作。我很肯定我是在做别的事情。但我不能选择一个答案,直到我找出其他的错误。好吧,它应该是有效的,它是简单而直接的。一步一步地调试你的代码,你会发现你的错误。BB不会更改QFile,所以问题在于您的实现。是的,您是对的,考虑到没有初始数据可附加到字符串,调整字符串大小是毫无意义的。我也要修正我的答案。。。