案例:使用LineEdit和TextEdit实现读取文件并显示文件内容
展示:
代码:
#include "widget.h"
#include "ui_widget.h"
#include "QFileDialog"
#include "QMessageBox"
#include "QFile"
#include "QTextCodec"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//点击选择文件按钮,弹出文件对话框,读取文件,文件路径方如lineEdit中,内容放在TextEdit中
connect(ui->btn_select,&QPushButton::clicked,[=](){
QString filePath = QFileDialog::getOpenFileName(this,"打开文件","D:\\QT\\QtProjects\\15_QFile","(*.txt)");
if(filePath.isEmpty()){
QMessageBox::warning(this,"警告","路径不能为空");
}else{
ui->lineEdit->setText(filePath);
//指定编码格式
// QTextCodec *codec = QTextCodec::codecForName("gbk");
//读取文件信息
QFile file(filePath);
//指定打开方式
file.open(QIODevice::ReadOnly);
QByteArray arr;
//1:一次全部读取
// arr = file.readAll();//读取全部信息
//2:按行读取
while(!file.atEnd()){
arr += file.readLine();
}
//默认支持编码格式 utf-8
ui->textEdit->setText(arr);
// ui->textEdit->setText(codec->toUnicode(arr));
//关闭文件
file.close();
//写文件 WriteOnly会覆盖原来的,Append表示追加
file.open(QIODevice::Append);
file.write("aaaaaaa");
file.close();
}
});
}
Widget::~Widget()
{
delete ui;
}
QFileInfo文件信息读取
//文件信息类
QFileInfo info(filePath);
qDebug()<<"后缀名:"<<info.suffix().toUtf8().data()<<"大小:"<<info.size()<<"文件名:"
<<info.fileName()<<"文件路径"<<info.filePath();
//QT6版本created改为birthTime
qDebug()<<"创建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss")
<<"最后的修改日期:"<<info.lastModified().toString("yyyy/MM/dd hh:mm:ss");