其他分享
首页 > 其他分享> > QT-QFile文件

QT-QFile文件

作者:互联网

通过打开文件按钮,选择文件,在lineEdit上显示路径,在textEdit上显示内容。

ui界面如下:

在构造函数中:

        connect(ui->pushButton,&QPushButton::clicked,[=](){
        //读取文件的名字
        QString filename = QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("打开文件"),"E:\1-Project");
        //把文件名放到lineEdit中显示
        ui->lineEdit->setText(filename);
        //文件打开
        QFile file(filename);
        //设置打开模式——只读模式
        file.open(QIODevice::ReadOnly);
        //将文件中所有的东西读出来,file.readAll()的返回值是QByteArray
        QByteArray array=file.readAll();
        //转换格式,将文字格式转换为gbk
        QTextCodec * codec = QTextCodec::codecForName("gbk");
        //将QByteArray里的内容写到text里
        ui->textEdit->setText(codec->toUnicode(array));
        file.close();//文件关闭
    });

 第一种读取方式是readAll

 

 第二种方式是按行读,通过atEnd()来判断是不是读到最后一行。

connect(ui->pushButton,&QPushButton::clicked,[=](){
        //读取文件的名字
        QString filename = QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("打开文件"),"E:\1-Project");
        //把文件名放到lineEdit中显示
        ui->lineEdit->setText(filename);
        //文件打开
        QFile file(filename);
        //设置打开模式——只读模式
        file.open(QIODevice::ReadOnly);
        //将文件中所有的东西读出来,file.readAll()的返回值是QByteArray
//        QByteArray array=file.readAll();
        QByteArray array ;
        while(!file.atEnd())
        {
            array+= file.readLine();
        }
        //转换格式,将文字格式转换为gbk
        QTextCodec * codec = QTextCodec::codecForName("gbk");
        //将QByteArray里的内容写到text里
        ui->textEdit->setText(codec->toUnicode(array));
        file.close();//文件关闭
    });

 对文件进行写入

        file.open(QIODevice::Append);
        file.write("123")
        file.close();

 乱码原因是gbk与utf-8之间的转换。

 

 

 

 

标签:文件,QByteArray,QT,QFile,filename,ui,file,array
来源: https://blog.csdn.net/weixin_52010473/article/details/119320825