QT -- 文件操作 QFile
QFile简介
继承自QIODevice
QIODevice 类是 Qt 中所有 I/O 设备的基础接口类,为诸如 QFile、QBuffer 和 QTcpSocket 等支持读/写数据块的设备提供了一个抽象接口。。
QFile类提供一个用于读/写文件的接口,它是一个可以用来读写文本文件、二进制文件和Qt资源的 I/O 设备。
QFile可以单独使用,也可以和QTextStream 或者QDataStream 一起使用。
一个文件使用open()打开,使用close()关闭,使用flush()刷新。
示例代码:
写入数据到txt文件
QFile file("C:\\Users\\admin\\Desktop\\test.txt"); if(!file.open(QIODevice::WriteOnly))//以写的方式打开文件,如果文件不存在则创建, qDebug()<<file.errorString(); QByteArray buf = "bbbbbbbbbbb"; file.write(buf);//写入文件,支持QByteArray和 char * 类型数据写入 file.close();//关闭文件
从txt文件中读取所有数据
QFile file("C:\\Users\\admin\\Desktop\\test.txt"); if(!file.open(QIODevice::ReadOnly))//以读的方式打开文件 qDebug()<<file.errorString(); QByteArray buf = file.readAll();//读取文件所有数据 qDebug()<<"buf: "<<buf; file.close();//关闭文件
从txt文件中一行一行读取数据
QFile file("C:\\Users\\admin\\Desktop\\test.txt"); if(!file.open(QIODevice::ReadOnly))//以读的方式打开文件 qDebug()<<file.errorString(); while(file.atEnd() == false)//文件没到末尾就执行循环体内容 { QByteArray buf = file.readLine();//读取一行的数据 qDebug()<<buf; } file.close();//关闭文件
部分函数参数及作用
文件的数据读/写一般使用QDataStream 或者 QTextStream 来完成,不过也可以使用继承自 QIODevice 类的一些函数,如: