Qt-文件系统

Qt通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5):

Qt-文件系统

 

 

 l  QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口;

l  QFileDeviceQt5新增加的类,提供了有关文件操作的通用实现。

l  QFlie:访问本地文件或者嵌入资源;

l  QTemporaryFile:创建和访问本地文件系统的临时文件;

l  QBuffer:读写QbyteArray, 内存文件;

l  QProcess:运行外部程序,处理进程间通讯;

l  QAbstractSocket:所有套接字类的父类;

l  QTcpSocketTCP协议网络数据传输;

l  QUdpSocket:传输 UDP 报文;

l  QSslSocket:使用 SSL/TLS 传输数据;

3 基本文件操作

QFile提供了从文件中读取和写入数据的能力。

我们通常会将文件路径作为参数传给QFile的构造函数。不过也可以在创建好对象最后,使用setFileName()来修改

QFile主要提供了有关文件的各种操作,比如打开文件、关闭文件、刷新文件等。我们可以使用QDataStreamQTextStream类来读写文件,也可以使用QIODevice类提供的read()readLine()readAll()以及write()这样的函数。

值得注意的是,有关文件本身的信息,比如文件名、文件所在目录的名字等,则是通过QFileInfo获取,而不是自己分析文件路径字符串。

4  测试

(1)打开、读取、写入文件

功能:创建两个按钮,“read file”按钮打开一个文本框,读取文件的内容到textEdit;“save file”按钮将textEdit中的内容保存到一个文件中。界面如下:

Qt-文件系统

读取文件使用到的函数和步骤:

1)创建一个文件对象:QFilefile(path);

2)以只读方式打开文件:boolisOk=file.open(QIODevice::ReadOnly);

3)读取文件的内容有多种方式,这里介绍两种:

一次性读取文件全部内容:QByteArrayarray=file.readAll();

一次只读取一行:

1 QByteArray array; 2 while (file.atEnd() == false) { 3 //读一行 4 array += file.readLine(); 5 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfdyx.html