Qt 二进制文件读写(使用“魔术数字”)
| QFlie | 访问本地文件系统或者嵌入资源 |
| QTemporaryFile | 创建和访问本地文件系统的临时文件 |
| QBuffer | 读写 QByteArray |
| QProcess | 运行外部程序,处理进程间通讯 |
| QTcpSocket | TCP 协议网络数据传输 |
| QUdpSocket | 传输 UDP 报文 |
| QSslSocket | 使用 SSL/TLS 传输数据 |
- QImage image("philip.png");
- QMap map;
- map.insert("red", Qt::red);
- map.insert("green", Qt::green);
- map.insert("blue", Qt::blue);
- QFile file("facts.dat");
- if (!file.open(QIODevice::WriteOnly)) {
- std::cerr << "Cannot open file for writing: "
- << qPrintable(file.errorString()) << std::endl;
- return;
- }
- QDataStream out(&file);
- out.setVersion(QDataStream::Qt_4_3);
- out << quint32(0x12345678) << image << map;
- quint32 n;
- QImage image;
- QMap map;
- QFile file("facts.dat");
- if (!file.open(QIODevice::ReadOnly)) {
- std::cerr << "Cannot open file for reading: "
- << qPrintable(file.errorString()) << std::endl;
- return;
- }
- QDataStream in(&file);
- in.setVersion(QDataStream::Qt_4_3);
- in >> n >> image >> map;
- QFile file("file.xxx");
- file.open(QIODevice::WriteOnly);
- QDataStream out(&file);
- // Write a header with a "magic number" and a version
- out << (quint32)0xA0B0C0D0;
- out << (qint32)123;
- out.setVersion(QDataStream::Qt_4_0);
- // Write the data
- out << lots_of_interesting_data;
- QFile file("file.xxx");
- file.open(QIODevice::ReadOnly);
- QDataStream in(&file);
- // Read and check the header
- quint32 magic;
- in >> magic;
- if (magic != 0xA0B0C0D0)
- return XXX_BAD_FILE_FORMAT;
- // Read the version
- qint32 version;
- in >> version;
- if (version < 100)
- return XXX_BAD_FILE_TOO_OLD;
- if (version > 123)
- return XXX_BAD_FILE_TOO_NEW;
- if (version <= 110)
- in.setVersion(QDataStream::Qt_3_2);
- else
- in.setVersion(QDataStream::Qt_
http://blog.sina.com.cn/s/blog_a401a1ea0101ffnb.html
Qt 二进制文件读写(使用“魔术数字”)的更多相关文章
- Qt 学习之路:二进制文件读写
在上一章中,我们介绍了有关QFile和QFileInfo两个类的使用.我们提到,QIODevice提供了read().readLine()等基本的操作.同时,Qt 还提供了更高一级的操作:用于二进制的 ...
- Qt 学习 之 二进制文件读写
在上一章中,我们介绍了有关QFile和QFileInfo两个类的使用.我们提到,QIODevice提供了read().readLine()等基本的操作.同时,Qt 还提供了更高一级的操作:用于二进制的 ...
- Qt 学习之路 2(36):二进制文件读写
Qt 学习之路 2(36):二进制文件读写 豆子 2013年1月6日 Qt 学习之路 2 20条评论 在上一章中,我们介绍了有关QFile和QFileInfo两个类的使用.我们提到,QIODevice ...
- [转载:]Fortran 二进制文件读写
一些朋友总是咨询关于二进制文件的读写和转化.这里就我自己的理解说一说. 一).一般问题 二进制文件与我们通常使用的文本文件储存方式有根本的不同.这样的不同很难用言语表达,自己亲自看一看,理解起来会容易 ...
- JAVA核心技术I---JAVA基础知识(二进制文件读写和zip文件读写)
一:二进制文件读写 (一)写文件 –先创建文件,写入数据,关闭文件 –FileOutputStream, BufferedOutputStream,DataOutputStream –DataOutp ...
- C++二进制文件读写
简单二进制文件读写,多文件 /*Demo9.1.cpp*/ #include <iostream> #include <fstream> #include <string ...
- LeetCode 5112. 十六进制魔术数字 Hexspeak
地址 https://leetcode-cn.com/problems/hexspeak/ 题目描述字母大写的十六进制字符串,然后将所有的数字 0 变成字母 O ,将数字 1 变成字母 I . 如果 ...
- QT QSettings读写配置文件
QT QSettings读写配置文件 需要用一个配置文件来保存程序的初始值,同时也需要做保存修改后的值. 那么借助于QSetting 就可以达到目的. 注意,生成的是 ini 文件! //1.创建和读 ...
- Java随谈(一)魔术数字、常量和枚举
本文适合对 Java 或 C 有一些了解的用户阅读,推荐阅读时间15分钟. 导言 写这个系列的原因? 我曾经听过一种说法,如果不了解Liunx的网络通讯,就很难理解理解Java的IO:如果不知道Jav ...
随机推荐
- [Bootstrap]全局样式(四)
按钮 1.基本类.btn {display/padding/margin-bottom/font-size/border-radius/border} 作用于< a:role:button &g ...
- WMB代理无法正常启动时的解决方案。
情况:执行了启动命令,查看状态的时候 还是停止..再启动,又说已经启动了.. 解决方案:正常情况在hosts文件加一条记录:主机IP和hostname的映射关系就好了
- CSS的引入方式
再用HTML编写的文本中,有是没能达到我们想要的效果,此时此刻我们可以用过引用CSS来控制!这不仅使得效果好而且代码层次清晰.CSS的引入方式可以分为四类: 1.链入外部样式表,就是把样式表保存为一个 ...
- initial,常用于消除css格式
刚在群里有人问在不改变原有css的情况下怎么清除一个css属性.有人提出了 initial,再此记录下. initial 关键字用于设置 CSS 属性为它的默认值. initial 关键字可用于任何 ...
- StringBuilder的Append()方法会比+=效率高
StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 id from " + databa ...
- thymeleaf 模板布局
八.模板布局(Template Layout) 8.1 包含模板片段(Including template fragments) 定义和引用片段 我们通常想要从别的模板文件中调用一些模板片段,例如 页 ...
- mysql之创建外键报150错误的处理方法
这几天由于在赶项目进度,也就没有及时记录下自己的学习情况 ,在完成项目的这段时间里,碰到了很多问题,在解决问题的过程中学习了不少技巧. 这里就主要介绍一下在mysql数据库中为表之间建立外键时报100 ...
- c语言指针用法
一.指针 int t 定义整型变量 int *p p为指向整型数据的指针变量 int a[n] 定义整型数组a,它有n个元素 int *p[n] 定义指针数组p,它由n个指向整形数据的指针元素组成 i ...
- oracle分页与rownum
Oracle分页(limit方式的运用) Oracle不支持类似于 MySQL 中的 limit. 但你还是可以rownum来限制返回的结果集的行数. 第一种 select * from a_matr ...
- excle,aspose.cells 公式字段值取不到 xmls转xml
问题: 一,单元格如果是公式的,读出值为0 aspose.cells 4.4.0.5版本 由于太低,读xmls后缀的excel文件时,发现如果此列是公式算出来的,值是获取不到的.获取到的值一直是0 二 ...