linux下QT文本文件读取与保存操作


一个简单的文本读写操作文本格式为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();
    }
}

你可能感兴趣的:(Qt,c++,个人笔记,随笔,Qt,文本文件,读取,保存)