Qt基础开发之Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法
Qt文件操作类QFile简介
Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基类,
为设备提供了公共实现和抽象接口用于读写块数据。QIODevice又继承至QObject。
1、使用QFile类打开文件
QFile的构造函数
QFile(constQString&name)//传入一个文件路径
构造完成后,并没有打开文件,需要使用QFile::open函数来打开文件
[virtual]boolQFile::open(OpenModemode); /* *OpenModemode打开方式,是一个枚举类型 *QIODevice::NotOpen不打开 *QIODevice::ReadOnly只读方式 *QIODevice::WriteOnly读写方式 *QIODevice::ReadWrite读写方式 *QIODevice::Append 追加方式 *QIODevice::Truncate阶段方式 *QIODevice::Text 转换不同平台的换行,读的时候把所有换行转成'\n',写的时候再把'\n'转换对应平台的换行 *QIODevice::Unbuffered不使用缓冲区 */
例如:
QFilefile("d:/123.txt"); file.open(QIODevice::ReadOnly);
2、QFile类关闭文件
[virtual]voidQFileDevice::close();//刷新缓冲区,并关闭文件
3、QFile类文件读操作
QIODevice::read函数
QByteArrayQIODevice::read(qint64maxSize);//读取maxSize个字节,内部位置指针后移maxSize,并返回一个QByteArray对象。
例如:
QFilefile("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug()<QIODevice::readLine函数
QByteArrayQIODevice::readLine(qint64maxSize=0)//读取一行,但是这一行不能超过maxSize字节,maxSize=0代表不限制行字节数。例如:
QFilefile("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug()<QIODevice::readAll函数
QByteArrayQIODevice::readAll()4、QFile类文件写操作
QIODevice::write函数
qint64QIODevice::write(constQByteArray&byteArray);//将byteArray写入文件,写完内部位置指针后移例如:
QFilefile("d:/123.txt"); file.open(QIODevice::ReadWrite|QIODevice::Text);//打开模式可以使用‘|'组合 QByteArraybyte("hellworld"); file.write(byte); file.write(byte); file.close();5、QDataStream
流控文件输入输出可以使用QDataStream。
流控写入
#include#include #include intmain(intargc,char**argv) { QFilefile("d:/123.txt"); file.open(QIODevice::ReadWrite); QDataStreamstream(&file); inta=10; QStringstr="helloworld"; stream< 流控读取
#include#include #include intmain(intargc,char**argv) { QFilefile("d:/123.txt"); file.open(QIODevice::ReadWrite); QDataStreamstream(&file); inta; QStringstr; stream>>a>>str; qDebug()<<"a:"< 本文主要介绍了Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法,更多关于Qt基础开发知识请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。