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/130795.html原文链接:https://javaforall.net

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


相关推荐

  • 《生物化学与分子生物学》—-绪论—-听课笔记(一)

    《生物化学与分子生物学》—-绪论—-听课笔记(一)[华中科技大学]生物化学与分子生物学绪论1.1生物化学与分子生物学绪论(1)生物化学(Biochemistry、Biologicalchemistry):研究生物体(微生物、植物、动物及人体)的化学组成和生命过程中的化学变化规律的科学。 分子生物学(MolecularBiology):生物化学有机地融合了微生物学、遗传学和细胞生物学的有关知识—-形成了现代的分子生物学。它…

    2022年7月11日
    14
  • pycharm2021.4.3激活破解方法

    pycharm2021.4.3激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    181
  • C语言面试题每日一练(一)[通俗易懂]

    C语言面试题每日一练(一)[通俗易懂]C语言作为嵌入式Linux开发的必备工具,作为嵌入式Linux开发的基础语言,那么在面试嵌入式工程师时C语言定是面试中的重中之重。作为一名开学就大三的老学长,不得不为找工作做必要准备。每天做一道C语言面试题,并且能够融会贯通。2020.8.5题目描述:    在未排序的数组中找到第k个最大元素。请注意,你需要找的是数组排序后的第k个最大的元素而不是第k个不同的元素。示例1:输入:32.

    2022年7月14日
    20
  • String转换jsonobject格式错误

    String转换jsonobject格式错误String转换jsonobject格式错误开发工具与关键技术:java作者:彭浩达撰写时间:2019年7月24日publicvoidUpdataecdrud(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,I…

    2022年8月23日
    11
  • 汇编中的inc和dec

    汇编中的inc和dec

    2021年5月26日
    188
  • csdn如何转载博客_怎么在csdn上写博客

    csdn如何转载博客_怎么在csdn上写博客后续的文章将自动同步到csdn

    2022年8月7日
    8

发表回复

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

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