QT基础入门——文件操作(六)

前言:

文件操作是应用程序必不可少的部分。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 
#include 
#include 
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 

QT基础入门——文件操作(六)_第1张图片

运行效果

QT基础入门——文件操作(六)_第2张图片

二、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 
#include 
#include 
#include 
#include 
#include 

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;
}


QT基础入门——文件操作(六)_第3张图片
 QT基础入门——文件操作(六)_第4张图片

你可能感兴趣的:(qt,开发语言,QFile文件读取,QFileinfo,QT的创建,文件操作)