QT读写文件

QFile读文件和写文件

QFileInfo获取文件信息

#include "widget.h"
#include "ui_widget.h"
#include 
#include 
#include 
#include 
#include 


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

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

void Widget::on_pushButtonread_clicked()
{
    QString path = QFileDialog::getOpenFileName(this,"open","C:/Users/kihay/Desktop/Qt/day3","TXT(*.txt)");
    if (path.isEmpty()==false)
    {
        //文件对象
        QFile file(path);

        //打开文件
        bool isOk = file.open(QIODevice::ReadOnly);
        if(isOk == true)
        {
#if 0
            //读文件,默认只识别utf8的编码
            QByteArray array = file.readAll();
            //显示到编辑区
            //ui->textEdit->setText(QString (array));
            ui->textEdit->setText(array);//不写也没关系,会自动转换
#endif
            QByteArray array;
            while(file.atEnd()==false)
            {
                //读一行
                array  += file.readLine();
            }
            ui->textEdit->setText(array);
        }
        //关闭文件
        file.close();
        //获取文件信息
        QFileInfo info(path);
        qDebug()<<"文件名字"<<info.fileName().toUtf8().data();//toUft8显示中文
        qDebug()<<"文件后缀"<<info.suffix();
        qDebug()<<"文件大小"<<info.size();
        qDebug()<<"文件创建时间"<<info.created().toString("yyyy-MM-dd hh:mm:ss");//2019.11.26  15:13:00

    }

}

void Widget::on_pushButtonwrite_clicked()
{
    QString path = QFileDialog::getSaveFileName(this,"save","C:/Users/kihay/Desktop/Qt/day3","TXT(*.txt)");
    if(path.isEmpty() == false)
    {
        QFile file;//创建文件对象
        //关联文件名字
        file.setFileName(path);
        //打开文件只写方式
        bool isOk = file.open(QIODevice::WriteOnly);
        if(isOk == true)
        {   //获取编辑区内容
            QString str = ui->textEdit->toPlainText();

            //写文件
            //QString -> QByteArray
            file.write(str.toUtf8());

        }
        file.close();
    }



}

你可能感兴趣的:(QT读写文件)