文本流和数据流

本文详细介绍了Qt中文件的读写操作,包括文本文件和二进制文件的处理方式。通过示例代码展示了如何使用QTextStream进行文本文件的读写,以及如何使用QDataStream进行二进制数据的读写。同时,还提到了不同Qt版本间数据文件处理的差异及版本号设置的方法。

Qt里面将文件分为两大类

1.文件内容是可读的文本文件

2.文件内容是直接的二进制文件

 

QTextStream :

写入的数据全部转换为可读文本

QDataStream:

写入的数据全部转换为二进制数据

 

//直接读写

int main(int argc, char *argv[])

{

    QCoreApplication a(argc, argv);

    QFile file("C:/Users/hp/Desktop/test.hex");

 

    if( file.open(QIODevice::WriteOnly) )

    {

        QString dt = "D.T.Software";

        double value = 3.14;

 

        file.write(dt.toStdString().c_str());

        file.write(reinterpret_cast<char*>(&value), sizeof(value));

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly) )

    {

        QString dt = "";

        double value = 0;

 

        dt = QString(file.read(12));

        file.read(reinterpret_cast<char*>(&value), sizeof(value));

 

        file.close();

 

        qDebug() << dt;

        qDebug() << value;

    }

    

    return a.exec();

}

 

void text_stream_test(QString s)   //文本文件读写

{

    QFile file(s);

 

    if( file.open(QIODevice::WriteOnly | QIODevice::Text) )

    {

        QTextStream out(&file);

        QString by = "BadogYang";

        double value = 3.14;

 

        out << by << endl;

        out << value << endl;

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly | QIODevice::Text) )

    {

        QTextStream in(&file);

 

        while( !in.atEnd() )     //文本文件输出方式

        {

            QString line = in.readLine();

 

            qDebug() << line;

        }

 

        file.close();

    }

}

 

void data_stream_test(QString s)    //数据文件读写

{

    QFile file(s);

 

    if( file.open(QIODevice::WriteOnly) )

    {

        QDataStream out(&file);

        QString by = "BadogYang";

        double value = 3.14;

 

        out << by;

        out << value;

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly) )

    {

        QDataStream in(&file);

 

        QString by = "";

        double value = 0;

 

        in >> by;

        in >> value;

 

        qDebug() << by;

        qDebug() << value;

 

        file.close();

    }

}

 

不同的qt版本默认数据文件处理方式可能不同,我们可以设置qt的读写版本号,需要设置的情况多是不同Qt程序之间的数据传递

void setVersion(int v) //设置读写版本号

int version() const //返回版本信息

 

//文章参考狄泰软件学院Qt视频教程

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值