12 文件操作
约 976 字大约 3 分钟
2025-06-22
QlODevice为支持读写数据块的设备(如QFile、QBuffer和QTcpSocket)提供了一个通用的实现和一个抽象接口。QlODevice是抽象的,不能实例化,但通常使用它定义的接口来提供与设备无关的I/O功能。
QFil是一个用于读写文本和二进制文件和资源的I/o设备。QFile可以单独使用,也可以更方便地与QTextStream或QDataStream一起使用。
Qt有一个QtXML模块,用于读写XML文件。QT提供类两个种读写XML文件的方法: 1、基于文档对象模型(document object model,DOM) 2、基于流 Qt提供了一些用于解析、修改和保存JSON(javascript object notation)文件的类: QJsonDocument类提供了一种读写JSON文档的方法。 QJsonArray封装了JSON数组 QJsonValue封装了JSON的值 QJsonObject类封装了一个JSON对象。 Qt提供了4个类来处理图像数据居:Qlmage、QPixmap、QBitmap和QPicture。Qlmage是为I/0直接像素访问和操作而设计和优化的,而QPixmap是为在屏幕上显示图像而设计和优化的。QBitmap只是一个方便类,它继承了QPixmap,确保深度为1。最后,QPicture类是一个可以记录和回放QPainter命令的绘制设备
目录和文件操作
除了文件读写的类,Qt还提供了一些类用于目录和文件操作,这些类基本涵盖了文件操作需要的主要功能。 ·例如获取当前目录、新建目录、复制文件、分离文件的路径和基本文件名、判断文件是否存在等。 QCoreApplication:用于提取应用程序路径、程序名等文件信息 QFile:除了打开文件操作外,还有复制文件、删除文件等功能 QFileinfo:用于提取文件信息,包括路径、文件名、后缀 QDir:用于提取目录或文件信息,获取一个目录下的文件或目录列表,创建或删除目录和文件,文件重名等操作 QTemporaryDir和QTemporaryFile:用于创建临时自录和临时文件 QFileSystemWatcher:蓝听目录下文件的添加、删除等变化
文本文件读写
Qt提供了两种读写文本文件的方法,一种是用QFile类直接读写文本文件,另一种是将QFile和QTextStream结合起来,用流(stream)方法进行文本文件读写。
枚举值 | 描述 |
---|---|
QIODevice::ReadOnly | 以只读方式打开 |
QIODevice::WriteOnly | 以只写方式打开 |
QlODevice::ReadWrite | 以读写方式打开 |
QIODevice::Append | 新增加的内容将被追加到文件末尾 |
QlODevice:Truncate | 以重写的方式打开,原有内容会被删除 |
QIODevice::Text | 在读取时,将行结束符转换成\n;在写入时,将行结束符转换成本地格式,例如Win32平台上是\r\n |
读写二进制文件
预定义编码读写二进制文件
本示例将QFile和QDataStream类结合起来使用,使用QDataStream的流写入操作符“《<"和流读取操作符“>>"进行文件数据的序列化读写。 Qt将一些基本数据类型和简单的Qt类序列化(serialization)为二进制数据,这种预定义编码与操作系统、CPU类型无关。
使用QFile和QDataStream进行二进制数据文件的读写 QFile负责文件的IO设备接口,即与文件的物理交互; QDataStream以数据流的方式读取文件内容或写入文件内容。
原始数据读取二进制文件
QDataStream有一组函数用于直接读写二进制数据,使用这些函数可以完全控制文件内每个字节数据的意义 函数writeRawData()和readRawData()用于读取字节数据数组;函数writeByetes()和readBytes()用于读写字符串便ade字节数据数组
贡献者
版权所有
版权归属:PinkDopeyBug