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();
}
下一篇: C 语言最全入门笔记(非常详细)零基础入门到精通,收藏这一篇就够了
本文标签
Qt:23.QFile类(QFile类介绍、打开文件方法、读取文件方法、写入文件方法、关闭文件/重命名文件/检查文件是否存在/删除文件、实例演示)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。