QT-QFile文件

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

ui界面如下:

QT-QFile文件

在构造函数中:

        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

QT-QFile文件

 

QT-QFile文件

 第二种方式是按行读,通过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之间的转换。

QT-QFile文件

 

 

 

 

上一篇:QFile 对文件进行读写操作


下一篇:QT 读取Xml文件