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 类的一些函数,如:

 

 

原文地址:https://www.cnblogs.com/zzzsj/p/14592224.html