QFile f

1.readall

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

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->selectFile, &QPushButton::clicked, this, [=](){
        QString filename = QFileDialog::getOpenFileName(this,"open file","d:\\");
        if (filename.isEmpty()) {
            QMessageBox::warning(this,"warnnig","select file failed");
            return;
        }
        ui->lineEdit->setText(filename);

        // 创建文件对象
        // 默认读取文件格式:utf8
        QFile file(filename);
        //QTextCodec* codec = QTextCodec::codecForName("gbk");
        // 指定打开方式
        bool isOk = file.open(QFile::ReadOnly);
        if (!isOk) {
            QMessageBox::critical(this,"ERROR","file open failed");
            return;
        }
        // 读文件
        QByteArray array = file.readAll();
        // 显示到文本框
        //ui->textEdit->setText(codec->toUnicode(array));
        ui->textEdit->setText(array);
        // 关闭文件
        file.close();
    });

}

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

2.readline

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

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->selectFile, &QPushButton::clicked, this, [=](){
        QString filename = QFileDialog::getOpenFileName(this,"open file","d:\\");
        if (filename.isEmpty()) {
            QMessageBox::warning(this,"warnnig","select file failed");
            return;
        }
        ui->lineEdit->setText(filename);

        // 创建文件对象
        // 默认读取文件格式:utf8
        QFile file(filename);
        //QTextCodec* codec = QTextCodec::codecForName("gbk");
        // 指定打开方式
        bool isOk = file.open(QFile::ReadOnly);
        if (!isOk) {
            QMessageBox::critical(this,"ERROR","file open failed");
            return;
        }
        // 读文件
        QByteArray array;
        while(!file.atEnd()) {
            array += file.readLine();
        }
        // 显示到文本框
        //ui->textEdit->setText(codec->toUnicode(array));
        ui->textEdit->setText(array);
        // 关闭文件
        file.close();
    });

}

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

相关文章: