前言:
文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。
目录
一、QFile文件读写操作
1.QFile file( path 文件路径)
2. 读
3.写
widget.h
widget.ui
运行效果
二、QFileInfo 读取文件信息
一、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:/桌面文件");//将路径放入到lineEditui->lineEdit->setText(path);//编码格式类QTextCodec * codec = QTextCodec::codecForName("gbk");//读取内容 放到textEdit中//QFile默认支持的格式是 utf-8QFile 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() << " 文件名称:"<<info.fileName() << " 文件路径:"<< info.filePath();
qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");
qDebug() << "最后修改日期:"<<info.lastModified().toString("yyyy-MM-dd hh:mm:ss");
#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:/桌面文件");//将路径放入到lineEditui->lineEdit->setText(path);//编码格式类QTextCodec * codec = QTextCodec::codecForName("gbk");//读取内容 放到textEdit中//QFile默认支持的格式是 utf-8QFile 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;
}