一、QFile 基本原理
1、QFile 基础
①、QFile 类继承自 QFileDevice 类,QFileDevice 又继承自 QIODevice类。
②、QFile 类提供了一个用于读取/写入文件的接口,是一种读写二进制文件、文本、资源的 I/O 设备。
③、默认情况下 QFile 假定为二进制,即不对存储在文件中的字节执行任何转换。
④、与其他 QIODevice 不同,QFile 不会发送 QIODevice::aboutToClose(),
QIODevice::btyesWritten()、QIODevice::readyRead()信号,这意味着 QFile 不适合读取/写入某些类型的文件(比如 Unix 上的 device 文件)
2、读写文件内容的方法
①、QFile可通过自身直接对文件进行读写,比如,使用从 QIODevice类继承来的 read()、readAll()、readLine()等函数进行读写,这些函数的原型详见后文;还可使用QTextStream 或 QDataStream 进行读写(这两种方法在前文已讲解过)。
②、在 Unix 上,不能使用 QFileDevice::atEnd()来判断文件是否还有更多的数据,因为在Unix 上有一些特殊的系统文件(比如,在/proc中),它的 QFile::size()总是返回 0,但仍可从这样的文件中读取数据,而 QFileDevice::atEnd()函数对于大小为 0 的文件将返回true