QT 文件的读写操作在TextEdit中输出

话不多说,上代码
widget.h代码
//主要是两个槽函数

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_buttonRead_clicked();

    void on_buttonWrite_clicked();
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QFileDialog>
#include<QFile>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

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

void Widget::on_buttonRead_clicked()
{
    QString path =QFileDialog::getOpenFileName(this,"open","../","*.txt");
    if(path.isEmpty() ==false)
    {
        //文件对象
        QFile file(path);

        //打开文件  只读方式  默认只识别utf8编码
        bool bRet  =file.open(QIODevice::ReadOnly);
        if(bRet == true)
        {
            //方法1
//            //读文件
//            QByteArray array = file.readAll();
//            //显示到编辑器
//            ui->textEdit->setText(QString(array));

            //方法2:一行一行度

            QByteArray array ;
            while(file.atEnd() == false)//判断是否到文件末尾
            {
                //读一行
                array += file.readLine();
            }
            ui->textEdit->setText(array);
        }
        file.close();
    }
}
void  Widget::on_buttonWrite_clicked()
{
    QString  path;
    path = QFileDialog::getOpenFileName(this,"save","../","TXT(*txt)");
    if(path.isEmpty() == false)
    {
        QFile file ;  // 创建文件对象
        file.setFileName(path);//关联文件名称

       bool bRet =  file.open(QIODevice::WriteOnly);  //只写方式打开文件
       if(bRet == true)
       {
           //获取编辑区内容
           QString str = ui->textEdit->toPlainText();
           //写文件

           //QString -> QByteArray
               file.write(str.toUtf8());//转换为UTF8

           //QString  ->c++ string  ->char*
           //file.write(str.toStdString().data());
           
//下边是编码的转化,可以不用添加了,根据需要选择编码格式    
               //转换为本地编码格式
               file.write(str.toLocal8Bit());
               
               //QString  ->  QByteArray
               QString buf ="123";
               QByteArray a =buf.toUtf8();  //中文
               a = buf.toLocal8Bit();  // 本地编码
               
               //QByteArray  ->char*
               char * b =a.data();
               
               //char*  ->QString
               char* p ="abe";
               QString c = QString (p);

       }
        file.close();
    }
}

ui
在这里插入图片描述

效果图:
在这里插入图片描述
比较粗糙,仅作个人学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值