0013:Qt常用类 - QFile

1 开发环境

在介绍内容之前,先说明一下开发环境,如下图:
在这里插入图片描述在这里插入图片描述
Qt版本:Qt5.3.2;
Qt开发工具:Qt Creater 3.2.1;
Qt构建工具:Desktop Qt 5.3 MinGW 32bit;
Qt开发平台:Windows 7 64bit。

2 QFile

QFile是Qt中的文件操作类,可以用来记录日志、记录调试信息、记录二进制数据等。

2.1 读写文本文件

读写文本文件主要用到了QFile的三个接口和QTextStream辅助QFile来读写文件。

QFile的三个接口如下:

  • QFile(const QString & name)
  • bool QFile::open(OpenMode mode) [virtual]
  • void QFileDevice::close() [virtual]
QFile fileW("my.txt");
if (fileW.open(QIODevice::WriteOnly|QIODevice::Append|QIODevice::Text))
{
    QTextStream out(&fileW);
    out << QString("12345abcde一二三四五\n");
}
fileW.close();

QFile fileR("my.txt");
if (fileR.open(QIODevice::ReadOnly|QIODevice::Text))
{
    QTextStream in(&fileR);
    while (!in.atEnd()) { qDebug("txt in: %s", qPrintableU8(in.readLine())); }
}
fileR.close();

2.2 读写二进制文件

读写文本文件主要用到了与读写文本文件一样的QFile的三个接口和QDataStream辅助QFile来读写文件。

#define BINDATA_LEN                                 16

char binData[BINDATA_LEN] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
QFile fileBinW("my.dat");
if (fileBinW.open(QIODevice::WriteOnly|QIODevice::Truncate))
{
    QDataStream out(&fileBinW);
    out.writeRawData(binData, BINDATA_LEN);
}
fileBinW.close();

QFile fileBinR("my.dat");
if (fileBinR.open(QIODevice::ReadOnly))
{
    char * binDataR = new char [BINDATA_LEN];
    QDataStream in(&fileBinR);
    in.readRawData(binDataR, BINDATA_LEN);
    for (int i=0; i<BINDATA_LEN; i++) { qDebug("binData[%02d]: 0x%02x", i, binDataR[i]); }
    delete [] binDataR;
}

在读二进制文件时,不像读文本文件那样,需要预先知道读入多大空间的二进制数据,得用new申请空间来存放读入的二进制数据,读完后不再使用申请的空间时,一定记得要delete申请的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值