19 QFile文件读写操作
代码资源:https://download.csdn.net/download/qq_36926037/85060408
19.1 前期准备
19.1.1 项目创建
创建项目,详细过程步骤:https://blog.csdn.net/qq_36926037/article/details/123720720
19.1.2 界面搭建
19.2 QFile文件读写
(1)获取文件:QFlie file(path)
(2)读操作
设置文件打开方式:file.open(QIODevice::ReadOnly);
1.按行读取:file.readLine(),
判断是否读到文件尾部file.atend()
2.全部读取:file.readAll()
3.文件默认支持的编码格式utf-8
4.利用编码格式类,指定编码格式:QTextCodec *codec=QTextCodec::codecForName(“gbk”);
编码格式转换:codec->toUnicode(arry);
文件关闭:file.close()
(3)写操作
设置文件打开方式:file.open(QIODevice::Append);
1.写入内容:file.write("内容)
文件关闭:file.close()
19.2.1 QFile文件读操作
file.open(QIODevice::ReadOnly);
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>
//***************QFile文件读操作#####################//
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton,&QPushButton::clicked,[=]()
{
//#include <QFileDialog>
//(1)选择文件
QString path=QFileDialog::getOpenFileName(this,
"打开文件",
"D:\\");
//(2)将文件路径,写入lineEdit
ui->lineEdit->setText(path);
//(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
QFile file(path);
file.open(QIODevice::ReadOnly);//设置只读方式打开文件
//读取全部文件内容
QByteArray arry= file.readAll();
//读取一行内容
// QByteArray arry2;
// while (file.atEnd())
// {
// arry2+=file.readLine();
// }
//方法1: 不需要格式转换
ui->textEdit->setText(arry);//将数据放入组件
//方法2: 需要转换格式
//#include <QTextCodec>
// QTextCodec *codec=QTextCodec::codecForName("gbk");
// ui->textEdit->setText(codec->toUnicode(arry));
//(4)对文件对象进行关闭
file.close();
});
}
Widget::~Widget()
{
delete ui;
}
19.2.2 QFile文件写操作
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>
//***************QFile文件读操作#####################//
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton,&QPushButton::clicked,[=]()
{
//#include <QFileDialog>
//(1)选择文件
QString path=QFileDialog::getOpenFileName(this,
"打开文件",
"D:\\");
//(2)将文件路径,写入lineEdit
ui->lineEdit->setText(path);
//(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
QFile file(path);
file.open(QIODevice::ReadOnly);//设置只读方式打开文件
//读取全部文件内容
QByteArray arry= file.readAll();
//读取一行内容
// QByteArray arry2;
// while (file.atEnd())
// {
// arry2+=file.readLine();
// }
//方法1: 不需要格式转换
ui->textEdit->setText(arry);//将数据放入组件
//方法2: 需要转换格式
//#include <QTextCodec>
// QTextCodec *codec=QTextCodec::codecForName("gbk");
// ui->textEdit->setText(codec->toUnicode(arry));
//(4)对文件对象进行关闭
file.close();
//***************QFile文件写操作#####################//
file.open(QIODevice::Append);//用追加的方式进行写操作
file.write("hahahahahahahah");
file.close();
});
}
Widget::~Widget()
{
delete ui;
}
19.3 QFileInfo文件信息
(1)定义文件信息对象:QFlieInfo info(path)
(2)文件信息操作
文件大小:info.size()
文件后缀:info.suffix()
创建日期:info.created()
…
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>
#include <QDebug>
#include <QDateTime>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton,&QPushButton::clicked,[=]()
{
//#include <QFileDialog>
//(1)选择文件
QString path=QFileDialog::getOpenFileName(this,
"打开文件",
"D:\\");
//(2)将文件路径,写入lineEdit
ui->lineEdit->setText(path);
//(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
QFile file(path);
//***************QFile文件读操作#####################//
file.open(QIODevice::ReadOnly);//设置只读方式打开文件
//读取全部文件内容
QByteArray arry= file.readAll();
//读取一行内容
// QByteArray arry2;
// while (file.atEnd())
// {
// arry2+=file.readLine();
// }
//方法1: 不需要格式转换
ui->textEdit->setText(arry);//将数据放入组件
//方法2: 需要转换格式
//#include <QTextCodec>
// QTextCodec *codec=QTextCodec::codecForName("gbk");
// ui->textEdit->setText(codec->toUnicode(arry));
//(4)对文件对象进行关闭
file.close();
//***************QFile文件写操作#####################//
file.open(QIODevice::Append);//用追加的方式进行写操作
file.write("hahahahahahahah");
file.close();
//***************QFileInfo文件信息类#####################//
QFileInfo info(path);
qDebug()<<"文件大小:"<<info.size()<<
"后缀名:"<<info.suffix()<<
"文件名称:"<<info.fileName()<<
"文件路径:"<<info.filePath();
// #include
qDebug()<<"创建日期:"<<info.created().toString("yyyy/MM/dd");
});
}
Widget::~Widget()
{
delete ui;
}