首页 > 编程知识 正文

qt多线程读写文件,qt读取二进制文件

时间:2023-05-05 09:18:08 阅读:41613 作者:2399

概述:

文件操作是APP应用程序中不可缺少的一部分。 Qt作为通用的开发库,提供跨平台的文件操作功能。 Qt通过QIODevice提供I/O设备的抽象,这些设备有读写字节块的能力。 以下是I/O设备的类图(Qt5 ) :

1,QIODevice )所有I/O设备类的父类。 提供字节块读写的通用操作和基本接口; 2,QFileDevice:Qt5中新添加的类为文件操作提供了通用实现。 3,QFlie )访问本地文件或嵌入资源; 4,QTemporaryFile :创建本地文件系统的临时文件进行访问; 5,q缓冲区: q字节,读写内存文件; 6、运行外接程序,处理进程间通信; 7,QAbstractSocket )所有套接字类的父类; 8、QTcpSocket:TCP协议网络的数据传输; 9,qudpsocket :发送UDP消息; 10,qss套接字:使用SSL/TLS传输数据;文件系统分类:

顺序访问设备:

指那些数据只能访问一次。 从头到尾,从第一个字节访问到底,中途不能返回读取上一个字节。 其中,QProcess、QTcpSocket、QUdpSoctet和QSslSocket是顺序访问设备。

随机接入设备:

可以任意次数访问任意位置。 QIODevice:seek ) )函数还可以重新定位文件访问位置指针。 QFile、QTemporaryFile和QBuffer是随机接入设备.使用QFile来读文件

QFile提供从文件中读取和写入数据的功能。 通常,文件路径作为参数传递给QFile的构造函数。 但是,创建对象后,也可以使用setFileName ()进行修改,如下所示:

/*获取要打开的文件的路径*/qstring path=qfiledialog 33603360 get open filename (this,' open ',' ./',' source ).CPP ); q创建文件对象,并将文件路径传递给此对象*/qfilefile (路径); 打开文件:

qtringpath=qfiledialog :3360 get open filename (this,' open ',' ./',' source ) *.CPP ); if(path.isempty(==false ) ) /文件对象qfilefile(path ); //直接读取打开文件的只读格式if (file.open (qiodevice 33603360 readonly (=true ) ),默认值为utf8编码*/#if 0 //读取//#endif/*逐行阅读,字符数组*/q字节数组; while(file.atend(==false ) { array =file.readLine ); }/*文件*/file.close (关闭; } 使用QFile保存文件:

/*获取保存路径*/qstring path=qfiledialog 33603360 get savefilename (this,' save ',' ./',' souce ).CPP ); if(path.isempty(==false ) { q文件文件; file.set filename (路径; //打开文件的步骤if (file.open (qiodevice 33603360 write only )==true )/*服务文本编辑区域的文本信息(/qstring str=ui-textededd /*转换为字符c并固定,默认utf8 *.//file.write (str.tostdstring (.data ) ) ) ) ) ) ) file.www/* qstring-q字节阵列* /字节阵列; QString str2='tets '; test=str2.toUtf8 (; //中文test=str2.toLocal8Bit (; /*本地代码*//* q bytearray-char * */char * a=test.data (; /*char* - QString*/char *p='123 '; qstringc=qstring(p; (} file.close ); }编写文件时有关类型转换的注意事项:

1,将QString转换为utf8

file.write(str.toUTF8 ) ); 2,QString为char*

/* qstring-string-char * */file.write (str.tostdstring ).data ); 3,从QString到字节数组

q字节测试; QString str2='tets '; test=str2.toUtf8 (; //中文test=str2.toLocal8Bit (; /*本机代码*/4,字节数组到char*

char *a=test.data (; 5,char*迁移到QString

char *p='123 '; qstringc=qstring(p;使用QFileInfo获取文件信息

使用QFileInfo类获取文件信息,如文件的绝对路径、创建时间和文件后缀:

qileinfoinfo (路径; qDebug ()文件名:(info.filename ) ).toUtf8 ).data ); qDebug ()文件后缀: ) info.suffix ); q调试() '文件大小:' info.size ) )/1024 'KB ); qDebug ()文件创建时间(info.created ).tostring ) yyyy-mm-DDhh:mm:ss ); 注意:

由于文件名的默认值需要在utf8中转换为char*,因此可以使用上述转换方法,

要使QDateTime显示为“2020-12-27 11:11:11 :”,必须转换为哪个QString并填写转换格式。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。