千家信息网

Qt中文本流和数据流、缓冲操作和数据操作的示例分析

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,小编给大家分享一下Qt中文本流和数据流、缓冲操作和数据操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.文本
千家信息网最后更新 2025年02月07日Qt中文本流和数据流、缓冲操作和数据操作的示例分析

小编给大家分享一下Qt中文本流和数据流、缓冲操作和数据操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一.文本流和数据流

A.Qt中讲文件类型分为2大类
1.文本文件--文件内容是可读的文本字符
2.数据文件--文件内容是直接的二进制数据
QFile直接支持文本文件和数据文件的读写

B.Qt提供了辅助类简化了文本文件/数据文件的读写
1.QTextStream--写入的数据全部转换为可读文本
2.QDataStream--写入的数据根据类型转换为二进制数据
IO设备辅助类的使用方式

不同的Qt版本的数据流文件格式可能不同
void setVersion(int v)//设置的版本号
int version()const//获取读写版本号

代码示例

#include #include #include int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QFile file("C:/Users/59673/Desktop/test.hex");    if( file.open(QIODevice::WriteOnly) )    {        QString dt = "mylovedandanxiaohai";        double value = 3.14;        file.write(dt.toStdString().c_str());        file.write(reinterpret_cast(&value), sizeof(value));        file.close();    }    if( file.open(QIODevice::ReadOnly) )    {        QString dt = "";        double value = 0;        dt = QString(file.read(19));        file.read(reinterpret_cast(&value), sizeof(value));        file.close();        qDebug() << dt;        qDebug() << value;    }    return a.exec();}

运行结果

二.缓冲区操作与目录操作

A.Qt中缓冲区的概念
1.缓冲区的本质为一段连续的存储空间
2.QBuffer是Qt中缓冲区相关的类
3.在Qt中可以将缓冲区看作一种特殊的IO设备
4.文件流辅助类可以直接用于操作缓冲区
QBuffer缓冲区的使用方式
代码示例

#include #include #include #include #include void write_buffer(int type, QBuffer& buffer){    if( buffer.open(QIODevice::WriteOnly) )    {        QDataStream out(&buffer);        out << type;        if( type == 0 )        {            out << QString("mylove");            out << QString("3.1415");        }        else if( type == 1 )        {            out << 3;            out << 1415;        }        else if( type == 2 )        {            out << 3.1415;        }        buffer.close();    }}void read_buffer(QBuffer& buffer){    if( buffer.open(QIODevice::ReadOnly) )    {        int type = -1;        QDataStream in(&buffer);        in >> type;        if( type == 0 )        {            QString dt = "";            QString pi = "";            in >> dt;            in >> pi;            qDebug() << dt;            qDebug() << pi;        }        else if( type == 1 )        {            int a = 0;            int b = 0;            in >> a;            in >> b;            qDebug() << a;            qDebug() << b;        }        else if( type == 2 )        {            double pi = 0;            in >> pi;            qDebug() << pi;        }        buffer.close();    }}int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QByteArray array;    QBuffer buffer(&array);    write_buffer(0, buffer);    read_buffer(buffer);    return a.exec();}

运行结果

B.QBuffer缓冲区的使用场合
1.在线程间进行不同类型的数据传递
2.缓存外部设备中的数据返回
3.数据读取速度小于数据写入速度
C.QDir是Qt中功能强大的目录操作类
1.Qt中的目录分隔符统一使用'/'
2.QDir能够对目录进行任意的操作--创建、删除、重命名
3.QDir能够获取指定目录中的所有条目--文件和文件夹
4.QDir能够使用过滤字符串获取指定条目
5.QDir能够获取系统中的所有根目录
目录操作基础示例

C.QFileSystemWatcher用于监控文件和目录的状态变化
1.能够监控特定目录和文件的状态
2.能够同时对多个目录和文件进行监控
3.当目录或者文件发生改变时将触发信号
4.可以通过信号与槽的机制捕捉信号并作出响应

以上是"Qt中文本流和数据流、缓冲操作和数据操作的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 文件 缓冲 目录 文本 缓冲区 示例 数据流 内容 不同 信号 版本 篇文章 类型 设备 监控 辅助 分析 二进制 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库 用户 过期时间 数据库中闭包的运算 我的世界国际服十大好玩服务器 数据库如何给表输入数据格式 长宁区正规数据库系统销售方法 福州美咔互联网科技有限公司 教育软件开发需要什么 先临三维携手杭州星罗互联网科技 jsp软件开发 监听器实验 网络安全问题整改效果 国际互联网博览会科技感 网络安全心理健康主题班会 如何查询外汇交易服务器数量 软件开发实训平台模块 网络安全大赛吴白胜 sql数据库的详细信息怎么查看 如何把主机设置为共享服务器 诺尔丹上海软件开发 常州途畅互联网科技有限公司 数据库管理女生好学么 泗洪龙飞软件开发工作室 移动医疗系统数据库 sql 数据库用户新建 肇庆软件开发步骤 福建工程项目管控软件开发平台 卡卡科技网络技术有限公司 软件怎样连接数据库 网络安全挑战赛有哪些 常州通用软件开发电子 金蝶云账号修改数据库
0