【QT】 19 QFile文件读写/QFileInfo文件信息

  代码资源:https://download.csdn.net/download/qq_36926037/85060408

19.1 前期准备

19.1.1 项目创建

   创建项目,详细过程步骤:https://blog.csdn.net/qq_36926037/article/details/123720720
在这里插入图片描述

19.1.2 界面搭建

在这里插入图片描述
在这里插入图片描述

19.2 QFile文件读写

  (1)获取文件:QFlie file(path)
  (2)读操作
    设置文件打开方式:file.open(QIODevice::ReadOnly);
    1.按行读取:file.readLine(),
    判断是否读到文件尾部file.atend()
    2.全部读取:file.readAll()
    3.文件默认支持的编码格式utf-8
    4.利用编码格式类,指定编码格式:QTextCodec *codec=QTextCodec::codecForName(“gbk”);
    编码格式转换:codec->toUnicode(arry);
    文件关闭:file.close()
  (3)写操作
    设置文件打开方式:file.open(QIODevice::Append);
    1.写入内容:file.write("内容)
    文件关闭:file.close()

19.2.1 QFile文件读操作

  file.open(QIODevice::ReadOnly);

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>

//***************QFile文件读操作#####################//

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
       //#include <QFileDialog>
        //(1)选择文件
       QString path=QFileDialog::getOpenFileName(this,
                                                 "打开文件",
                                                 "D:\\");
       //(2)将文件路径,写入lineEdit
       ui->lineEdit->setText(path);

       //(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
       QFile file(path);
       file.open(QIODevice::ReadOnly);//设置只读方式打开文件

       //读取全部文件内容
       QByteArray arry= file.readAll();
       //读取一行内容
//       QByteArray arry2;
//       while (file.atEnd())
//       {
//           arry2+=file.readLine();
//       }

       //方法1: 不需要格式转换
       ui->textEdit->setText(arry);//将数据放入组件
       //方法2: 需要转换格式
       //#include <QTextCodec>
//       QTextCodec *codec=QTextCodec::codecForName("gbk");
//       ui->textEdit->setText(codec->toUnicode(arry));

       //(4)对文件对象进行关闭
       file.close();

    });
}
Widget::~Widget()
{
    delete ui;
}

在这里插入图片描述

19.2.2 QFile文件写操作

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>

//***************QFile文件读操作#####################//

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
       //#include <QFileDialog>
        //(1)选择文件
       QString path=QFileDialog::getOpenFileName(this,
                                                 "打开文件",
                                                 "D:\\");
       //(2)将文件路径,写入lineEdit
       ui->lineEdit->setText(path);

       //(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
       QFile file(path);
       file.open(QIODevice::ReadOnly);//设置只读方式打开文件

       //读取全部文件内容
       QByteArray arry= file.readAll();
       //读取一行内容
//       QByteArray arry2;
//       while (file.atEnd())
//       {
//           arry2+=file.readLine();
//       }
       //方法1: 不需要格式转换
       ui->textEdit->setText(arry);//将数据放入组件
       //方法2: 需要转换格式
       //#include <QTextCodec>
//       QTextCodec *codec=QTextCodec::codecForName("gbk");
//       ui->textEdit->setText(codec->toUnicode(arry));

       //(4)对文件对象进行关闭
       file.close();

       //***************QFile文件写操作#####################//
       file.open(QIODevice::Append);//用追加的方式进行写操作
       file.write("hahahahahahahah");
       file.close();
    });
}
Widget::~Widget()
{
    delete ui;
}

在这里插入图片描述

19.3 QFileInfo文件信息

  (1)定义文件信息对象:QFlieInfo info(path)
  (2)文件信息操作
    文件大小:info.size()
    文件后缀:info.suffix()
    创建日期:info.created()
    …

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTextCodec>
#include <QDebug>
#include <QDateTime>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
       //#include <QFileDialog>
        //(1)选择文件
       QString path=QFileDialog::getOpenFileName(this,
                                                 "打开文件",
                                                 "D:\\");
       //(2)将文件路径,写入lineEdit
       ui->lineEdit->setText(path);

       //(3)读取内容放入到TextEdit(QFile默认支持的格式为utf-8格式)
       QFile file(path);
       //***************QFile文件读操作#####################//
       file.open(QIODevice::ReadOnly);//设置只读方式打开文件

       //读取全部文件内容
       QByteArray arry= file.readAll();
       //读取一行内容
//       QByteArray arry2;
//       while (file.atEnd())
//       {
//           arry2+=file.readLine();
//       }
       //方法1: 不需要格式转换
       ui->textEdit->setText(arry);//将数据放入组件
       //方法2: 需要转换格式
       //#include <QTextCodec>
//       QTextCodec *codec=QTextCodec::codecForName("gbk");
//       ui->textEdit->setText(codec->toUnicode(arry));
       //(4)对文件对象进行关闭
       file.close();

       //***************QFile文件写操作#####################//
       file.open(QIODevice::Append);//用追加的方式进行写操作
       file.write("hahahahahahahah");
       file.close();

       //***************QFileInfo文件信息类#####################//
       QFileInfo info(path);
       qDebug()<<"文件大小:"<<info.size()<<
                 "后缀名:"<<info.suffix()<<
                 "文件名称:"<<info.fileName()<<
                 "文件路径:"<<info.filePath();
//       #include
       qDebug()<<"创建日期:"<<info.created().toString("yyyy/MM/dd");

    });
}

Widget::~Widget()
{
    delete ui;
}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值