Qt:23.QFile类(QFile类介绍、打开文件方法、读取文件方法、写入文件方法、关闭文件/重命名文件/检查文件是否存在/删除文件、实例演示)

目录

1.QFile类介绍:

2.打开文件方法:

3.读取文件方法:

4.写入文件方法:

5.关闭文件/重命名文件/检查文件是否存在/删除文件:

6.实例演示:


1.QFile类介绍:

  • QFile 类是 Qt 框架中的一个用于处理文件的类。它提供了文件的读取、写入和关闭等功能,是一个非常强大的文件操作工具。

2.打开文件方法:

  • open(QIODevice::OpenMode mode):在构造函数中声明了文件路径后,以指定模式打开文件。
  • 常见模式有:
    QIODevice::ReadOnly:只读模式
    QIODevice::WriteOnly:只写模式
    QIODevice::ReadWrite:读写模式
    QIODevice::Append:追加模式
    QIODevice::Truncate:截断模式(打开文件时清空文件内容)

3.读取文件方法:

  • read(qint64 maxlen):从文件中读取最多 maxlen 字节的数据,并返回读取的数据。返回值是一个 QByteArray 对象。
  • readLine(qint64 maxlen = 0):从文件中读取一行数据。如果提供了 maxlen 参数,则读取最多 maxlen 字节的数据,直到遇到行结束符为止。返回值是一个 QByteArray 对象。
  • readAll():读取文件中的所有数据,并返回读取的数据。返回值是一个 QByteArray 对象。

4.写入文件方法:

  • write(const QByteArray &data):将 QByteArray 对象中的数据写入文件。返回值是写入的字节数。
  • write(const char *data, qint64 len):将长度为 len 的 data 字符数组写入文件。返回值是写入的字节数。

5.关闭文件/重命名文件/检查文件是否存在/删除文件:

  • close():关闭文件。
  • exists():静态函数,检查文件是否存在。
  • remove():静态函数,删除文件。
  • rename(const QString &newName):重命名文件。

6.实例演示:

  •  以下是一个打开文本文件和保存文本文件的小程序,相当于一个记事本。
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("记事本");
    //创建指向菜单栏的指针
    QMenuBar* menuBar=this->menuBar();

    //创建菜单项,并将菜单项添加到菜单栏
    QMenu* menu=new QMenu("文件");
    menuBar->addMenu(menu);

    //创建两个动作,并将动作添加到菜单项
    QAction* action_1=new QAction("打开");
    QAction* action_2=new QAction("保存");
    menu->addAction(action_1);
    menu->addAction(action_2);

    //创建一个纯文本输入框,创建一个文本对象用于设置文本属性,设置完成后将文本属性添加到文本输入框
    //通过setCentralWidget设置窗口中央控件,会占满窗口并随着窗口大小改变而改变
    edit=new QPlainTextEdit();
    QFont font;
    font.setPointSize(13);
    edit->setFont(font);
    this->setCentralWidget(edit);


    //连接两个动作到槽函数
    connect(action_1,&QAction::triggered,this,&MainWindow::handle_1);
    connect(action_2,&QAction::triggered,this,&MainWindow::handle_2);

}

MainWindow::~MainWindow()
{
    delete ui;
}

//这是打开按钮
void MainWindow::handle_1()
{
    //首先打开文件对话框,会返回文件的路径,使用qstring对象接收。
    QString path=QFileDialog::getOpenFileName(this);

    //把文件名显示在状态栏中
    QStatusBar* statusBar=this->statusBar();
    statusBar->showMessage("文件路径为:"+path);

    //创建文件对象,在栈上,将路径传递进来,设置文件打开的方式
    QFile file(path);
    bool ret=file.open(QIODevice::ReadOnly);
    //判断文件是否打开,open方法会返回一个布尔值,成功打开返回true
    if(!ret)//没有成功打开文件,返回即可
    {
        statusBar->showMessage("文件打开失败");
        return;
    }

    //创建一个qstring对象存储文本,然后将文本设置到纯文本输入控件中,关闭文件
    QString text=file.readAll();
    edit->setPlainText(text);
    file.close();
}

//这是保存按钮
void MainWindow::handle_2()
{
    //首先要在点击后,弹出一个文件保存对话框
    QString path=QFileDialog::getSaveFileName(this);
    //创建qfile对象,并打开
    QFile file(path);
    bool ret=file.open(QIODevice::WriteOnly);
    if(!ret)
    {
        QStatusBar* statusBar=this->statusBar();
        statusBar->showMessage("文件打开失败");
        return;
    }

    //创建一个qstring别名,指向输入控件中的文本,将文本转换格式后写入到文件
    const QString& text=edit->toPlainText();
    file.write(text.toUtf8());

    file.close();

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S+叮当猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值