QT学习(二十一)——用QDataStream读写文件

写文件——写出来的文件并不是中文、UTF-8的形式的文本,所以在读取的时候需要进行向UTF-8的转化。

void Widget::writeData()
{
    //创建文件对象
    QFile file("../test.txt");

    //打开文件,以只写的方式打开文件
    bool isOK=file.open(QIODevice::WriteOnly);
    if(true==isOK)
    {
        //创建数据流.和file文件关联
        //往数据流中输入数据,相当于往文件里写数据
        QDataStream steam(&file);
        steam<<QString("主要看气质")<<520;
    }
    file.close();
}

所写文件:

读文件——注意读取文件的时候要按照写的顺序读取,其次需要把文件转换成UTF-8str.toUtf8().data())来打印,否则是乱码。

void Widget::readData()
{
    //创建文件对象
    QFile file("../test.txt");

    //打开文件,以只读的方式打开文件
    bool isOK=file.open(QIODevice::ReadOnly);
    if(true==isOK)
    {
        //创建数据流.和file文件关联
        //往数据流中读取数据,相当于在文件里读数据
        QDataStream steam(&file);
        //读的时候,按写的顺序取数据
        QString str;
        int a;
        steam>>str>>a;
        //qDebug()<<str.toUtf8().data()<<a;
        cout<<str.toUtf8().data()<<a;
    }
    file.close();
}

运行:

写出来的文件

打印内容

 

下面介绍一个小技巧

#define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"

__FILE__是代码文件(使用预处理宏cout)的名称

__LINE__是代码(使用预处理宏cout)行数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值