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

(0)
上一篇 2022年6月13日 下午1:00
下一篇 2022年6月13日 下午1:16


相关推荐

  • 厉害!Claude Code Ul 可视化工具来了!!

    厉害!Claude Code Ul 可视化工具来了!!

    2026年3月15日
    2
  • 端口号怎么查看_如何查看端口

    端口号怎么查看_如何查看端口查看本地端口查看端口监控wc计算数字,-l或——lines:只显示列数.netstat网络系统的状态信息netstat-lntup|grep3306|wc-lnetstat-lntup|grepmysql|wc-lss查看活动状态的套接字信息ss-lntup|grep3306|wc-lss-lntup|grep…

    2025年7月15日
    6
  • 基于Scrapy分布式爬虫的开发与设计

    基于Scrapy分布式爬虫的开发与设计个人博客请访问 http blog xhzyxed cn nbsp 这个项目也是初窥 python 爬虫的一个项目 也是我的毕业设计 当时选题的时候 发现大多数人选择的都是网站类 实在是普通不过了 都是一些简单的增删查改 业务类的给人感觉一种很普通的系统设计 当时也刚好在知乎上看到了一个回答 你是如何利用计算机技术解决生活的实际问题 链接就不放了 有兴趣的可以搜索下 然后就使用了这个课题 摘要 基

    2026年3月20日
    2
  • Spring Boot实战第七章-Spring Boot Web开发-Web相关配置

    Spring Boot实战第七章-Spring Boot Web开发-Web相关配置

    2021年5月16日
    101
  • Linux中公钥和私钥原理

    Linux中公钥和私钥原理原文 公钥和私钥原理一直以来对公钥和私钥都理解得不是很透彻 感觉到模棱两可 心里直打鼓呢 公钥怎么会事 私钥怎么会事 工作原理是怎么的 今天在网上找了半天 通过查看大家对这个密钥对的理解 总算弄清楚了 咱就把我的心得写出来给大家对密钥对有疑问的同志们看看 nbsp nbsp nbsp nbsp nbsp nbsp 公钥和私钥就是俗称的不对称加密方式 是从以前的对称加密 使用用户名与密码 方式的提高 我用电子邮件的方式说明一下原理 nbsp nbsp nbsp

    2025年8月18日
    5
  • ISO/OSI参考模型总结

    ISO/OSI参考模型总结1 物理层 主要功能 利用传输介质为数据链路层提供屋里连接 实现比特流的透明传输 作用 实现相邻计算机节点之间比特流的透明传输 尽可能屏蔽掉具体传输介质与物理设备的差异 使其上面的数据链路层不必考虑网络的具体传输介质是什么 透明传输的意义就是 不管传的是什么 所采用的设备只是起一个通道作用 把要传输的内容完好的传到对方 nbsp 2 数据链路层 负责建立和管理节点间的链路

    2026年3月17日
    2

发表回复

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

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