一、QFile 对文件进行读写操作
1、 QFile进行读写操作
2、 QFile file( path 文件路径)
3、 读
(1) file.open(打开方式) QIODevice::readOnly
(2) 全部读取 file.readAll() 按行读 file.readLine() atend()判断是否读到文件尾
(3)默认支持编码格式 utf-8
(4)利用编码格式类 指定格式 QTextCodeC
(5)QTextCodec * codec = QTextCodec::codecForName(“gbk”);
(6) ui->textEdit->setText( codec->toUnicode(array) );
(7)文件对象关闭 close
4、 写
(1) file.open( QIODevice::writeOnly 或 Append)
(2) file.write(内容)
(3) file.close 关闭
#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QFileDialog>
#include <QTextCodec>
#include <QDateTime>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
QString path = QFileDialog::getOpenFileName(this,"open file","E:\\demo01\\Qml\\myXml01");
ui->lineEdit->setText(path);
//编码格式类
// QTextCodec *codec = QTextCodec::codecForName("gdk");
QFile file(path);
//打开文件
if(!file.open(QIODevice::ReadOnly)){
return;
}
//获取文件内容的方法1
// QByteArray msg = file.readAll();
//获取文件内容的方法2
QByteArray msg;
while(!file.atEnd()){
msg += file.readLine();
}
ui->textEdit->setText(msg);
//如果是gdk编码可以转换
// ui->textEdit->setText(codec->toUnicode(msg));
file.close();
//写入文件
file.open(QIODevice::WriteOnly);//清空后写入
// file.open(QIODevice::Append);//追加写入
file.write("123456");
file.close();
QFileInfo info(file);
QString size = QString::number(info.size()),fileName = info.fileName(),pathD = info.path(),createTime = info.created().toString("yyyy/MM/dd hh:mm::ss");
QString modifyTime = info.lastModified().toString("yyyy/MM/dd hh:mm::ss");
QString suffix = info.suffix();//后缀名
QString buf = "size = " + size + " fileName =" + fileName + " pathD= " + pathD + " createTime= " + createTime + " modifyTime= "+ modifyTime + " suffix= " + suffix;
ui->textEdit_2->setText(buf);
});
}
Widget::~Widget()
{
delete ui;
}