文件操作
QFile file(路径)
file.open打开方式QIODevice::ReadOnly
file.readAll readLine(file.atEnd)判断是否读取到文件的结尾
读取文件,没有对乱码进行处理了,创建三个控件EditText:显示文件路径,PushButton:按钮打开一个文件,TextEdit:显示文件内容
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//点击按钮 选取文件
connect(ui->pushButton, & QPushButton::clicked, [=](){
QString path = QFileDialog::getOpenFileName(this, "打开文件", "D:\aaa.txt");
if(path.isEmpty())
{
QMessageBox::warning(this, "警告", "打开失败");
}else
{
//将路径放在LineEdit
ui->lineEdit->setText(path);
//读取文件
QFile file(path); //参数路径名称
//指定打开方式(只读的方式)
file.open(QIODevice::ReadOnly);
QByteArray array;
array = file.readAll();
//设置到文本框中
ui->textEdit->setText(array);
}
});
}
Widget::~Widget()
{
delete ui;
}
改进,添加编码改进
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QTextCodec>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//点击按钮 选取文件
connect(ui->pushButton, & QPushButton::clicked, [=](){
QString path = QFileDialog::getOpenFileName(this, "打开文件", "D:\aaa.txt");
if(path.isEmpty())
{
QMessageBox::warning(this, "警告", "打开失败");
}else
{
//将路径放在LineEdit
ui->lineEdit->setText(path);
//读取文件,QFile默认支持UTF-8格式
QTextCodec * codec = QTextCodec::codecForName("gbk");
QFile file(path); //参数路径名称
//指定打开方式(只读的方式)
file.open(QIODevice::ReadOnly);
QByteArray array;
array = file.readAll();//读取的一种方法
ui->textEdit->setText(array);
//设置到文本框中
ui->textEdit->setText(codec->toUnicode(array));
}
});
}
Widget::~Widget()
{
delete ui;
}
readLine读取文件
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QTextCodec>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//点击按钮 选取文件
connect(ui->pushButton, & QPushButton::clicked, [=](){
QString path = QFileDialog::getOpenFileName(this, "打开文件", "D:\aaa.txt");
if(path.isEmpty())
{
QMessageBox::warning(this, "警告", "打开失败");
}else
{
//将路径放在LineEdit
ui->lineEdit->setText(path);
//读取文件,QFile默认支持UTF-8格式
//QTextCodec * codec = QTextCodec::codecForName("gbk");
QFile file(path); //参数路径名称
//指定打开方式(只读的方式)
file.open(QIODevice::ReadOnly);
QByteArray array;
// array = file.readAll();//读取的一种方法
//读取的另一个方法
while( !file.atEnd() )
{
array += file.readLine();
}
ui->textEdit->setText(array);
//设置到文本框中
//ui->textEdit->setText(codec->toUnicode(array));
}
});
}
Widget::~Widget()
{
delete ui;
}