• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Qt使用QFile类打开文件

武飞扬头像
十年编程老舅
帮助1

Qt文件操作类QFile简介

Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基类,

为设备提供了公共实现和抽象接口用于读写块数据。QIODevice又继承至QObject。

1、使用QFile类打开文件

QFile的构造函数

QFile(const QString &name) //传入一个文件路径

构造完成后,并没有打开文件,需要使用QFile::open函数来打开文件

  1.  
    [virtual] bool QFile::open(OpenMode mode);
  2.  
    /*
  3.  
    *OpenMode mode 打开方式,是一个枚举类型
  4.  
    *QIODevice::NotOpen 不打开
  5.  
    *QIODevice::ReadOnly 只读方式
  6.  
    *QIODevice::WriteOnly 读写方式
  7.  
    *QIODevice::ReadWrite 读写方式
  8.  
    *QIODevice::Append 追加方式
  9.  
    *QIODevice::Truncate 阶段方式
  10.  
    *QIODevice::Text 转换不同平台的换行,读的时候把所有换行转成'\n',写的时候再把'\n'转换对应平台的换行
  11.  
    *QIODevice::Unbuffered 不使用缓冲区
  12.  
    */

例如:

  1.  
    QFile file("d:/123.txt");
  2.  
    file.open(QIODevice::ReadOnly);

2、QFile类关闭文件

[virtual] void QFileDevice::close(); //刷新缓冲区,并关闭文件

3、QFile类文件读操作

QIODevice::read函数

QByteArray QIODevice::read(qint64 maxSize);//读取maxSize个字节,内部位置指针后移maxSize,并返回一个QByteArray对象。

例如:

  1.  
    QFile file("d:/123.txt");
  2.  
    file.open(QIODevice::ReadOnly);
  3.  
    qDebug() << file.read(10) << endl;
  4.  
    file.close();

QIODevice::readLine函数

QByteArray QIODevice::readLine(qint64 maxSize = 0) //读取一行,但是这一行不能超过maxSize字节,maxSize = 0代表不限制行字节数。

例如:

  1.  
    QFile file("d:/123.txt");
  2.  
    file.open(QIODevice::ReadOnly);
  3.  
    qDebug() << file.readLine(10) << endl;
  4.  
    file.close();

QIODevice::readAll函数

QByteArray QIODevice::readAll()

4、QFile类文件写操作

QIODevice::write函数

qint64 QIODevice::write(const QByteArray &byteArray); //将byteArray写入文件,写完内部位置指针后移

例如:

  1.  
    QFile file("d:/123.txt");
  2.  
    file.open(QIODevice::ReadWrite | QIODevice::Text); //打开模式可以使用‘|'组合
  3.  
    QByteArray byte("hellworld");
  4.  
    file.write(byte);
  5.  
    file.write(byte);
  6.  
    file.close();

5、QDataStream

流控文件输入输出可以使用QDataStream。

流控写入

  1.  
    #include <QDataStream>
  2.  
    #include <QDebug>
  3.  
    #include <QFile>
  4.  
    int main(int argc, char**argv)
  5.  
    {
  6.  
    QFile file("d:/123.txt");
  7.  
    file.open(QIODevice::ReadWrite);
  8.  
    QDataStream stream(&file);
  9.  
    int a = 10;
  10.  
    QString str = "helloworld";
  11.  
    stream << a << str;
  12.  
    file.close();
  13.  
    return 0;
  14.  
    }

流控读取

  1.  
    #include <QDataStream>
  2.  
    #include <QDebug>
  3.  
    #include <QFile>
  4.  
    int main(int argc, char**argv)
  5.  
    {
  6.  
    QFile file("d:/123.txt");
  7.  
    file.open(QIODevice::ReadWrite);
  8.  
     
  9.  
    QDataStream stream(&file);
  10.  
    int a;
  11.  
    QString str;
  12.  
    stream >> a >> str;
  13.  
    qDebug() << "a:" << a << "str:" << str << endl;
  14.  
    file.close();
  15.  
    return 0;
  16.  
    }
学新通

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C 语言基础,C 设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbkjck
系列文章
更多 icon
同类精品
更多 icon
继续加载