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

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

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



目录
相关文章
|
9月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
878 4
|
9月前
|
监控 安全 Linux
Qt 文件类实战:解锁文件操作的无限可能
Qt 文件类实战:解锁文件操作的无限可能
408 1
|
9月前
|
数据挖掘 C++
QT基础入门——项目案例(七)
QT基础入门——项目案例(七)
461 0
QT基础入门——项目案例(七)
|
9月前
|
API
QT基础入门——Qt事件(五)
QT基础入门——Qt事件(五)
502 0
QT基础入门——Qt事件(五)
|
9月前
|
Unix Java Linux
QT基础入门——认识与创建QT(一)
QT基础入门——认识与创建QT(一)
151 0
QT基础入门——认识与创建QT(一)
|
4月前
|
存储 SQL 数据库连接
【QT速成】半小时入门QT6之QT前置知识扫盲(二)
【QT速成】半小时入门QT6之QT前置知识扫盲(二)
204 13
|
8月前
|
XML 开发框架 JSON
【Qt】Qt入门
【Qt】Qt入门
108 1
|
4月前
|
数据可视化 编译器 API
【QT速成】半小时入门QT6之QT前置知识扫盲(一)
【QT速成】半小时入门QT6之QT前置知识扫盲(一)
227 2
|
4月前
|
存储 SQL 数据库连接
【QT速成】半小时入门QT6之QT前置知识扫盲(二)
【QT速成】半小时入门QT6之QT前置知识扫盲(二)
135 2
|
4月前
|
编译器 API C语言
【QT速成】半小时入门QT6之QT前置知识扫盲(一)
【QT速成】半小时入门QT6之QT前置知识扫盲(一)
309 0