首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从QTextStream制作QString?

如何从QTextStream制作QString?
EN

Stack Overflow用户
提问于 2013-04-05 08:33:02
回答 2查看 12.4K关注 0票数 9

这样行得通吗?

代码语言:javascript
复制
QString bozo;
QFile filevar("sometextfile.txt");

QTextStream in(&filevar);

while(!in.atEnd()) {
QString line = in.readLine();    
bozo = bozo +  line;  

}

filevar.close();

bozo会成为sometextfile.txt的全部吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-05 08:46:31

为什么还要逐行阅读呢?您可以对其进行更多的优化,并在向其添加行时减少不必要的字符串重新分配:

代码语言:javascript
复制
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return;
QTextStream in(&file);
QString text;    
text = in.readAll();
file.close();
票数 19
EN

Stack Overflow用户

发布于 2013-04-05 09:21:54

正如ddriver提到的,您应该首先使用file.open(…);打开文件,而不是这样,是的,bozo将使用您已有的代码包含整个文件。

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

代码语言:javascript
复制
text = in.readAll();

这将用一个新字符串替换text,因此对text.reserve(file.size());的调用将只做未使用的工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15824043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档