我在 Ubuntu 16.04 64 位架构上使用 Qt 5.9。我有一个要求,我需要从一个文件中获取输入,该文件的字符范围在 10^8 范围内。不幸的是,将文件分成几部分并进行处理并不是一种选择,因为我需要文件中的全部数据来操作我的代码。
根据我到目前为止的想法,我计划将文件数据存储在QString
(欢迎任何其他建议)。 QString 在这方面可以存储的最大大小是多少?我看过以下链接,但没有一个提供具体答案:
- Link 1 https://forum.qt.io/topic/10302/what-is-the-maximum-length-of-string-that-qstring-object-can-hold/6
- Link 2 http://markmail.org/message/l3rhabj5hb463xwd
由于我的数据非常接近中定义的限制Link 1 https://forum.qt.io/topic/10302/what-is-the-maximum-length-of-string-that-qstring-object-can-hold/62^30,是QString
有合适的选择吗?
Note:所有数据都是十六进制的,我需要转换QString
to a QByteArray
下线。
我的另一个担忧是它是否能够有效地处理那么多数量的字符。从我所拥有的read http://doc.qt.io/qt-5/qstring.html#capacityQt 将字符串长度优化为一种微调 QString 内存使用的方法。考虑到大量字符(就所用时间而言),这是否会影响文件读取操作。
添加读取操作的示例代码:
void readData (QString file) {
QFile f(file);
if (!f.open(QFile::ReadOnly | QFile::Text)) break;
QTextStream in(&f);
QString data=in.readAll(); // alternately, this can be read line by line along with QStringBuilder
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)