0


Qt--文件操作

在Qt中对于文件操作,利用一个例子讲明白,就说通过按钮选择一个文件并将其内容打开到文本框中,注意:需要包含对应的头文件方可执行

读文件的方式:

首先要得到这个要打开的文件的路径,先默认打开的界面是桌面,选择路径时需要判断是否选中,这个通过isEmpty这个函数进行判断,若没有选中则进行提示,这个利用QMessageBox进行提示。

但要注意的是,默认打开txt的编码格式为utf-8,否则无法打开。

    //点击按钮 弹出对话框,选择文件
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        QString filePath = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\Administrator\\Desktop");
        qDebug()<<filePath;

        if(filePath.isEmpty())
        {
            QMessageBox::warning(this,"警告","文件路径不能为空");
            return;

        }
        else
        {
            //将文件路径放入到 lineEdit中
            ui->lineEdit->setText(filePath);

            //将文件内容读取到 textEdit中
            QFile file(filePath);

            //指定打开方式
            file.open(QIODevice::ReadOnly);

            //Qt默认支持格式是utf-8
            QByteArray array;

            ui->textEdit->setText(array);
            file.close();

        }

若不是utf-8的格式,也可以通过更改编码格式的方式,正确打开改文件,以gbk格式为例,同时打开方式也可以按行打开,通过atEnd函数来判断是否到了文件尾。但此时也就无法打开utf-8格式的文本了,所以需要通过if-else语句来选择何种编码格式,对应何种打开方式,而编码方式可以取出文本的第一个字符来看看进行判断。

            //文本编码格式类
            QTextCodec * codec = QTextCodec::codecForName("gbk");
            //将文件内容读取到 textEdit中
            QFile file(filePath);

            //指定打开方式
            file.open(QIODevice::ReadOnly);

            QByteArray array;
            //array = file.readAll();

            array = file.readLine();

            while(!file.atEnd())
            {
                array += file.readLine();
            }

            ui->textEdit->setText( codec->toUnicode(array) );
            file.close();

写文件的方式:

主要是通过append进行追加文本,否则将会替换打开文本中的内容

           写文件
           file.open(QIODevice::Append);//追加的方式写文件
           file.write("啊啊啊");
           file.close();

读取文本的信息:

其中最为重要的是suffix函数,它可以得到文件的后缀名,通过判断后缀名来选择打开的文件的方式。

            //读取文件
            QFileInfo info(filePath);

            qDebug()<<"文件的后缀名:"<<info.suffix()<<"文件大小"<<info.size();

            qDebug()<<"创建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss");
标签: qt ui 开发语言

本文转载自: https://blog.csdn.net/m0_65993150/article/details/128617396
版权归原作者 使劲搬砖 所有, 如有侵权,请联系我们删除。

“Qt--文件操作”的评论:

还没有评论