使用QDataStream读写二进制文件。
具体用法见如下代码:
(1)头文件“mainwindow.h”的具体代码如下:

#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void fileFun();
}

(2)源文件“mainwindow.cpp”的具体代码如下:

#include "mainwindow.h"
#include <QtDebug>
#include <QFile>
#include <QDataStream>
#include <QDate>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
fileFun();
}

函数fileFun()完成主要功能,其具体代码如下:

void MainWindow::fileFun()
{
/*将二进制数据写到数据流 */
//每一个条目都以定义的二进制格式写入文 件。Qt中的很多类型,包括QBrush、QColor、QDateTime、QFont、QPixmap、QString、QVariant等都可 以写入数据流。QDataStream类写入了name(QString)、birthday(QDate)和age(qint32)这三个数据。注意, 在读取时也要使用相同的类型读出。
QFile file("binary.dat");
file.open(QIODevice::WriteOnly | QIODevice::Truncate);
QDataStream out(&file);
//将数据序列化
out << QString(tr("周何骏:"));
//字符串序列化
out << QDate::fromString("1996/09/25", "yyyy/MM/dd");
out << (qint32)23;
//整数序列化
file.close();
/*从文件中读取数据 */
//QDataStream类可以读取任意的以 QIODevice为基类的类生成对象产生的数据,如QTcpSocket、QUdpSocket、QBuffer、QFile、QProcess等 类的数据。可以使用QDataStream在QAbstractSocket一端写数据,在另一端使用QDataStream读取数据, 这样就免去了烦琐的高低字节转换工作
file.setFileName("binary.dat");
if(!file.open(QIODevice::ReadOnly))
{
qDebug()<< "error!";
return;
}
QDataStream in(&file);
//从文件中读出数据
QString name;
QDate birthday;
qint32 age;
in >> name >> birthday >> age;
//获取字符串和整数
qDebug() << name << birthday << age;
file.close();
}

(3)运行结果如下图所示:

QT学习:读写二进制文件相关推荐

  1. Qt学习之路(56): 二进制文件读写

    今天开始进入 Qt 的另一个部分:文件读写,也就是 IO.文件读写在很多应用程序中都是需要的.Qt 通过 QIODevice 提供了IO的抽象,这种设备(device)具有读写字节块的能力.常用的IO ...

  2. Qt学习笔记之文件处理

    Qt提供了通用的文件处理类QFile和处理文本的QTextStream类和处理二进制数据的QDataStream类,这些流操作极大地方便了对文件的督促存储.对文件信息和目录进行操作的类是QfileIn ...

  3. 《Qt 学习之路 2》

    Home / Qt 学习之路 2 / <Qt 学习之路 2>目录 <Qt 学习之路 2>目录 序 Qt 前言 Hello, world! 信号槽 自定义信号槽 Qt 模块简介 ...

  4. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  5. QT学习笔记(九):遍历容器-迭代器(iterators)

    QT学习笔记(九):遍历容器-迭代器(iterators) 遍历容器 : 1.Jave风格: 2.STL风格: 3.foreach 关键字: 遍历容器 : 遍历一个容器可以使用迭代器(iterator ...

  6. Qt学习之Qt基础入门(下)

    1. 前言 前两篇博客简单的阐述了一下Qt的入门用法,这篇博客继续跟着视频学习. Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) ...

  7. QT学习笔记之对话框

    QT学习笔记之对话框 对话框是一种用户界面(窗口),它的主要功能是输出信息和接收用户的输入.在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互. 1)       模式对话框:用户只能与 ...

  8. 3-6 读写二进制文件

    3-4  读写二进制文件 u本节学习目标:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  9. QT学习之路2 学习笔记

    QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...

最新文章

  1. 一路撑起支付宝的OceanBase数据库,背后究竟有哪些杀手锏?| 云·创课程报名
  2. Spring boot 使用
  3. VTK:轮廓 Glow Pass用法实战
  4. LinkedHashSet集合
  5. MFC中App、Doc、MainFrame、View各指针的互相获取
  6. 关于解决锐捷校园网客户端与vm虚拟机网络冲突问题的方法
  7. matlab 矩阵线性规划,matlab线性规划-线性规划,matlab
  8. 12个从小到超级成功的博客案例研究
  9. 三角函数科学计算机在线应用,Scientific Calculator插件,在线科学计算器
  10. Android Studio导致的假死机问题的解决
  11. 3d Max修改器中英文对照表
  12. 用scratch编写游戏-数字华容道(不移动块法)
  13. 基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真
  14. 详述break、return、continue的区别
  15. centos7.6 桌面版本 网卡重启失败 记录
  16. 【日常学习】【数学】codevs3625 士兵站队问题题解
  17. DVWA 反射型XSS XSS(Reflected)题解
  18. 【计算机组织与体系结构】实验一:算术逻辑单元的实现
  19. CTF 每日一题 Day24 世上无难事
  20. SVA 断言 note

热门文章

  1. 远程监督关系抽取漫谈:结合知识图谱和图神经网络
  2. 上海人工智能实验室牛雅哲:通用决策AI平台的开拓创新之路
  3. ICCV 2021 | DeeperAction挑战赛三大赛道开启报名
  4. 评测任务实战:中文文本分类技术实践与分享 - PaperWeekly 第49期
  5. HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
  6. HDU 1556 前缀和 树状数组 线段树
  7. python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
  8. 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查
  9. Spring Boot 内置Tomcat——集成JSP解决方案
  10. C#——简单的计算器(仿Windows 10计算器)