一、QFile文件读写操作
1.QFile file( path 文件路径)
2. 读
file.open(打开方式) QIODevice::readOnly
全部读取 file.readAll() 按行读 file.readLine() atend()判断是否读到文件尾
默认支持编码格式 utf-8
利用编码格式类 指定格式 QTextCodeC
QTextCodec * codec = QTextCodec::codecForName("gbk");
//ui->textEdit->setText( codec->toUnicode(array) );
文件对象关闭 close
3.写
file.open( QIODevice::writeOnly / Append)
file.write(内容)
file.close 关闭
widget.h
#include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QFile> #include <QTextCodec> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //点击选取文件按钮,弹出文件对话框 connect(ui->pushButton,&QPushButton::clicked,[=](){ QString path = QFileDialog::getOpenFileName(this,"打开文件","E:/桌面文件"); //将路径放入到lineEdit ui->lineEdit->setText(path); //编码格式类 QTextCodec * codec = QTextCodec::codecForName("gbk"); //读取内容 放到textEdit中 //QFile默认支持的格式是 utf-8 QFile file(path);//参数是读取文件的路径 //设置打开方式 file.open(QIODevice::ReadOnly); //QByteArray array = file.readAll(); QByteArray array; while(!file.atEnd()) { array += file.readLine();//按行读取 } //将读取的数据 放入到textEdit中 //ui->textEdit->setText(array); ui->textEdit->setText(codec->toUnicode(array)); //对文件对象进行关闭 file.close(); //进行写文件 file.open(QIODevice::Append);//用追加方式进行写 file.write("啊啊啊啊啊"); file.close(); }); } Widget::~Widget() { delete ui; }
widget.ui
运行效果
二、QFileInfo 读取文件信息
QFileInfo info(路径)
qDebug() << "大小:" << info.size() << " 后缀名:" << info.suffix() << " 文件名称:"<
qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");
qDebug() << "最后修改日期:"<
#include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QFile> #include <QTextCodec> #include <QFileInfo> #include <QDebug> #include <QDateTime> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //点击选取文件按钮,弹出文件对话框 connect(ui->pushButton,&QPushButton::clicked,[=](){ QString path = QFileDialog::getOpenFileName(this,"打开文件","E:/桌面文件"); //将路径放入到lineEdit ui->lineEdit->setText(path); //编码格式类 QTextCodec * codec = QTextCodec::codecForName("gbk"); //读取内容 放到textEdit中 //QFile默认支持的格式是 utf-8 QFile file(path);//参数是读取文件的路径 //设置打开方式 file.open(QIODevice::ReadOnly); //QByteArray array = file.readAll(); QByteArray array; while(!file.atEnd()) { array += file.readLine();//按行读取 } //将读取的数据 放入到textEdit中 //ui->textEdit->setText(array); ui->textEdit->setText(codec->toUnicode(array)); //对文件对象进行关闭 file.close(); //QFileInfo 文件信息类 QFileInfo info(path); qDebug() << "大小:" << info.size() << "后缀名:" << info.suffix() <<"文件名称:" << info.fileName() << "文件路径:" << info.filePath(); qDebug() << "创建日期 :" << info.created().toString("yyyy/MM/dd hh:mm:ss"); qDebug() << "最后的修改日期:"<< info.lastModified().toString("yyyy/MM/dd hh:mm:ss"); }); } Widget::~Widget() { delete ui; }