Qt中的QFile读写文件操作

Qt中的QFile读写文件操作1.首先记录一下QString,QByteArray,char*之间的转换(1)QString->QByteArrayQStringbuf="123";QByteArraya=buf.toUtf8();//中文a=buf.toLocal8Bit();//本地编码(2)QByteArray->char*char*b=a.data…

大家好,又见面了,我是你们的朋友全栈君。

1.首先记录一下QString,QByteArray,char * 之间的转换

(1) QString -> QByteArray

QString buf = "123";
QByteArray a = buf.toUtf8(); //中文
a = buf.toLocal8Bit();  //本地编码

(2) QByteArray -> char *

char *b = a.data();

(3) char * -> QString[网络编程常常涉及到]

char *p = "abc";
QString c = QString(p);

2.QFile读写文件

在这里插入图片描述
widget.cpp源码如下:

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

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(*.txt)");
    if(path.isEmpty() == false){
        //文件对象
        QFile file(path);

        //打开文件
        bool isOK = file.open(QIODevice::ReadOnly);
        if(isOK == true){
#if 0
            //读文件,默认只识别UTF-8
           QByteArray array = file.readAll();//多查看帮助文档
           //显示到编辑区
           ui->textEdit->setText(array);
#endif
            QByteArray array;
            while (file.atEnd() == false) {
                //读一行
               array +=  file.readLine();
               ui->textEdit->setText(array);
            }

        }
        file.close();
    }

}

void Widget::on_buttonSave_clicked()
{
    QString path = QFileDialog::getSaveFileName(this, "save",
                                                "../", "TXT(*.txt)");
    if (path.isEmpty() == false){
        //创建文件对象
        QFile file;
        //关联文件名字
        file.setFileName(path);
        //打开文件,只写方式
        bool isOK = file.open(QIODevice::WriteOnly);
        if (isOK == true){
            //获取编辑区内容
            QString str = ui->textEdit->toPlainText();
            //write files
            //QString -> QByteArray
           // file.write(str.toUtf8());
            //QString -> C++ string ->char*
            file.write(str.toStdString().data());
        }
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130796.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PXE及PXE启动

    PXE及PXE启动PXE(Pre-bootExecutionEnvironment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXEclient调入内存执行,并显示出命令菜单,经用户选择后,PXEclient将放置在远端的操作系统通过网络下载到本地运行。  PXE协议的成功运行需要解决以下

    2022年6月15日
    65
  • 超尴尬婆婆对儿媳的新婚之夜的指导[通俗易懂]

    超尴尬婆婆对儿媳的新婚之夜的指导[通俗易懂]  婚礼结束当晚回到家,我和老公都精疲力竭了。我长这么大连个生日都没过过,突然被拉上台当了回主角,那叫一个紧张哦。这一辈子都没对这么多人笑这么长时间过,中间不得不跑到洗手间休息休息我可怜的脸部肌肉。 回到家我累得只想睡觉,结果刚洗完澡,婆婆神神秘秘地把我叫到她的房间,说有要事。  我一进去,公公就目不斜视地贴着墙根溜了。 我当时觉得不妙,但也晚了。 婆婆很亲热地拉着我坐在床边。先是絮絮叨叨…

    2022年5月4日
    125
  • 【SSD目标检测】3:训练自己的数据集「建议收藏」

    【SSD目标检测】3:训练自己的数据集「建议收藏」前言:上一章已经详细介绍了SSD——多目标定位检测识别算法,该框架是Google开源的代码,所以自然有很多前辈做改进了。我也不过是站在前辈的肩膀上,这一章就是讲解如何训练自己的数据集,让SSD框架识别。源码也无偿奉上了哦!–—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-——-—-—-—-—-—-—-—-—-—-—-—-—-—-——-需要的链接处(待完善)–…

    2022年10月22日
    0
  • 简单操作去除PDF文件[通俗易懂]

    简单操作去除PDF文件[通俗易懂]简单操作去除PDF加,密文件

    2022年10月15日
    0
  • Vue(1)Vue安装与使用[通俗易懂]

    Vue(1)Vue安装与使用[通俗易懂]前言Vue(读音/vjuː/,类似于view)是一套用于构建前后端分离的框架。刚开始是由国内优秀选手尤雨溪开发出来的,目前是全球“最”流行的前端框架。使用vue开发网页很简单,并且技术生态环境完善

    2022年7月30日
    2
  • 数据结构:树

    数据结构:树

    2021年9月26日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号