QTextStream读写文件

QTextStream 类是 Qt 框架中用于文本读写的一个非常强大的类,它提供了丰富的接口用于方便地进行文本文件的输入输出。QTextStream 可以用于读取和写入文本文件,同时也支持字符串(如 QString)的操作。它自动处理各种不同的字符集编码问题,确保跨平台时文本的正确读写。

主要功能

  • 文本编码QTextStream 支持多种编码格式,如 UTF-8、UTF-16 等,保证了文本内容在不同平台和环境间的一致性。
  • 流式操作:提供了类似 C++ 标准库中 iostream 的流式操作符 (<<>>),可以非常便捷地对文本内容进行读写。
  • 字符串操作:除了文件,QTextStream 也能够对字符串进行读写操作,提高了其使用的灵活性。
  • 格式化文本:能够设置数字和文本的格式,例如小数点后的位数、十六进制和科学记数法等,方便输出格式化的文本。

常用方法

  • setCodec():设置文本流的编码格式。
  • readLine():以行为单位读取文本。
  • <<>>:流式写入和读取操作,支持各种基本数据类型和字符串。
  • flush():刷新流,确保所有输出操作都被写入底层设备。
  • seek():移动文本流内的当前位置。
  • atEnd():判断是否已到达文本流的末尾。

示例代码

#include <QFile>
#include <QTextStream>
#include <QDebug>

int main() {
    QFile file("example.txt");

    // 打开文件以用于写入
    if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        QTextStream out(&file);
        out << "Hello, World!" << Qt::endl;  // 使用流式操作写入文本
        file.close();
    }

    // 打开文件以用于读取
    if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        QTextStream in(&file);
        QString line = in.readLine();  // 读取一行文本
        qDebug() << line;
        file.close();
    }

    return 0;
}

这个示例展示了如何使用 QTextStream 为一个文本文件写入一行内容,然后再读取出来。

myDemo

//QStream读取文件
void Widget::on_btnStreamR_clicked()
{
    //打开
    QFile file("D:/c++QT/lessonDemo/noteBookProject/test.txt");
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
        qDebug()<<"open error";

    }
    //读取
    QTextStream in(&file);
    in.setCodec("UTF-8");

   		 //QString context = in.read(file.size());方法一:按照大小整个读
    	//方法二:如果没到尾部,一行一行的读。
    while(!in.atEnd()){
        QString context = in.readLine();
        qDebug() << context;
        qDebug() << "=============";
        //std::cout <<"=========="<<std::endl;
    }

    //关闭
    file.close();

}

//QStream写入文件
void Widget::on_btnStreamW_clicked()
{
    QFile file("D:/c++QT/lessonDemo/noteBookProject/test3.txt");
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){
        qDebug()<<"open error";

    }

    QTextStream out(&file);
    out.setCodec("UTF-8");

    out << "write by stream to file" ;

    file.close();

}

结论

QTextStream 是处理文本文件和字符串的理想工具。它的设计充分考虑了字符编码和文本格式的问题,使得在跨平台应用开发中文本的输入输出变得非常简单和直接。不管是处理纯文本文件,还是需要进行复杂文本处理的场景,QTextStream 都提供了强大的功能支持。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值