将文本写入 QFile 的首选方法是什么?
使用写入方法
QFile file("test.txt");
if(file.open(QIODevice::WriteOnly | QIODevice::Text)) {
file.write("My Text\n");
}
file.close();
或使用 QTextStream
QFile file("test.txt")
if(file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << "My Text\n";
}
file.close()
编写大量文本时是否存在性能差异?
我曾经在英文 Stack Overflow 中问过这个问题,我会在这里发布答案的翻译,也许它会对某人有用。
QIODevice::write
-- 用于将原始数据写入设备的低级字节接口。QTextStream
-- 用于编写格式化文本的高级接口。大概QTextStream
实现了主要用例
QTextStream
是编写类字符串QString
。文本流将字符串从 UTF-16 转换为本地默认编码(通常为 8 位)或通过QTextStream::setCodec
.QTextStream 几乎肯定会更慢,因为 执行更多操作,但在大多数情况下,速度差异
QIODevice::write
可以忽略不计。如果您需要从原始数据手动组装一个大字符串,最好使用QIODevice::write
. 如果您需要编写格式化文本,包括QString
,那么最好使用QTextStream
.