我主要使用 C++ 中的 Qt 框架。任何人都可以向我解释使用文本流对象而不是直接使用对象的优势吗?
这是一个没有 QTextStream 的示例代码;
QFile file("asd.txt");
// assuming that file exists
file.open(QIODevice::Append);
file.write("asd");
file.close();
使用下面的代码代替上面的代码有什么优点(或缺点);
QFile file("asd.txt");
// assuming that file exists
file.open(QIODevice::Append);
QTextStream tStream(file);
file << "asd";
file.close();
提前致谢。
最佳答案
QFile::write
要么写入一个以 nul 结尾的 C 字符串,要么写入您提供的二进制数据。
QTextStream
在另一方面进行文本格式化/转换。
- 它只处理文本输出/输入,不处理任意二进制数据。
- 您可以给它一个原始类型(int、float、long 等),它会将其转换为文本表示
- 您可以让它读取文本并转换为原始类型。
- 您可以让它进行格式化输出,例如pad 或左/右调整文本。
- 您可以设置文本编码(例如UTF-8、UTF-16)
- 它缓冲数据,可能导致更少的系统调用。
请注意,这意味着您的代码应在关闭文件之前调用
tStream.flush();
。
关于c++ - C++中流的优点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34200796/