QT笔记- QDataStream简单读写

说明

        QDataStream类用于将任意常见类型的数据以二进制写入由QFile指定的磁盘文件中。同时也可以按写入的顺序读取这些类型的数据。

函数

  1. QDataStream::QDataStream(QIODevice * d)
  2. template <typename T>
    inline QDataStream & operator<<(QDataStream & s, const QList<T> & l)
  3. template <typename T>
    inline QDataStream & operator>>(QDataStream & s, QList<T> & l)

释义

  1. QDataStream类构造函数,可传入任意QIODevice指针类型参数,如QFile派生自QIODevice,故可传入QFile类型参数。
  2. 输出内容到文件,是一个全局的运算符重载模板函数。
  3. 从文件读取内容,是一个全局的运算符重载模板函数。

示例

先定义一个自定义类型:

class Test{
public:
    Test(){}
public:
    QString str;
    int a;
    QString str2;
};

写入文件

QFile file("test.abc");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
Test t;
t.str = "aaa";
t.a = 1;
t.str2 = "bbb";
out << t.str << t.a << t.str2;
file.close();

从文件读取

QFile file("test.abc");
file.open(QIODevice::ReadOnly);
QDataStream in(&file);
Test t;
in >> t.str >> t.a >> t.str2;
file.close();
cout << qPrintable(t.str) << endl
     << t.a << endl
     << qPrintable(t.str2) << endl;

运行结果:

写入:

读取: 


PS:如要实现直接操作自定义类型变量,只需编写输入、输出两个运算符重载函数即可。实现之后主体代码会简洁一些,但本质和例子中一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值