QTextStream 主要特性如下
特性类别 | 说明 |
---|---|
字符编码 | 支持 Unicode,可以处理如 UTF-8、UTF-16 等不同编码。通过 setCodec() 方法设置特定编码。 |
读写文本 | 用于读写文件、字符串或任何继承自 QIODevice 的对象。 |
格式化 | 提供文本格式化功能,如数字精度、基数(十进制、十六进制等)调整。 |
流操作符 | 支持使用 << 和 >> 操作符,类似于 C++ 中的 iostream。 |
换行处理 | 自动处理不同操作系统间的换行符差异(如 Unix 的 \n 和 Windows 的 \r\n )。 |
错误处理 | 能够检测和报告在读写过程中出现的错误。 |
缓冲机制 | 提供缓冲机制,提高读写效率。 |
字符串操作 | 可以方便地处理和解析字符串数据。 |
QTextStream
是一个功能强大的类,用于处理文本数据,特别是在需要考虑字符编码和文本格式的情况下。通过这个特性,它提供了一种灵活而强大的方式来读写和操作文本。
代码如下
void Widget::on_btnWrite_clicked()
{
// 1.打开
QFile file("D:/test2.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text);
// 2.写入
file.write("i see you, 今天下雨");
// 3.关闭
file.close();
}
void Widget::on_btnStreamRead_clicked()
{
// 1.打开文件
QFile file("D:/test.txt");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "flie open error";
}
// 2.读取文件
QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd())
{
QString context = in.readLine();
// 3.输出文件内容
qDebug() << context;
qDebug() << "============";
}
// 4.关闭
file.close();
}
void Widget::on_btnStreamWrite_clicked()
{
// 1.打开文件
QFile file;
file.setFileName("D:/test3.txt");
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "flie open error";
}
// 2.写入
QTextStream out(&file);
out.setCodec("UTF-8");
out << "I write stream char to File";
// 3.关闭
file.close();
}