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

S+叮当猫 2024-10-06 08:35:21 阅读 62

目录

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.实例演示:

 以下是一个打开文本文件和保存文本文件的小程序,相当于一个记事本。

<code>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();

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。