一个简单的文本读写操作文本格式为utf8。开文件显示乱码应该是文件编码问题,使用utf8无此问题(代码运行在linux平台)
代码如下:
#include "mywidget.h"
#include "ui_mywidget.h"
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::on_pushButton_clicked()
{
//获取文件路径及名称
QString path = QFileDialog::getOpenFileName(this,"打开文件","/myfile/code/qt","txt(*.txt) ;;"
"doc(*.doc *.docx)");
//判断路径是否为空
if(path.isEmpty() == false)
{
//指定文件路径
QFile file(path);
//检查文件打开情况
bool isOk = file.open(QIODevice::ReadOnly);
if(isOk == true)
{
//读文件 内容放到字节组
QByteArray array = file.readAll();
//显示到界面文本框
ui->textEdit->setText(array);
}
//文件关闭
file.close();
}
}
void MyWidget::on_pushButton_2_clicked()
{
//设置文件保存路径及文件名
QString path = QFileDialog::getSaveFileName(this,"保存文件","/myfile/code/qt","TXT (*.txt *.doc *.docx)");
//检查路径是否为空
if(path.isEmpty() == false)
{
//设置文件文路径
QFile file;
file.setFileName(path);
//判断文件打开
bool ret = file.open(QIODevice::WriteOnly);
if(ret == true)
{
//讲文本框内容添加至文件
QString str =ui->textEdit->toPlainText();
file.write(str.toUtf8());
}
//关闭文件
file.close();
}
}