小阳同学嵌入式学习日记-QFile读写文件

一、QFile简介

       在Qt中,QFile是一个用于文件I/O操作的类。它提供了一种方便的方式来读取和写入文件内容,以及获取有关文件的信息。

        QFile类提供了许多函数,用于打开、关闭、读取和写入文件。一些常用的QFile函数包括:

  • open(): 打开文件,可以指定打开方式(只读、只写、读写等)和打开模式(文本模式、二进制模式等)。
  • close(): 关闭文件。
  • read(): 读取文件中的数据。
  • write(): 向文件中写入数据。
  • seek(): 设置文件指针的位置。
  • size(): 获取文件的大小。
  • exists(): 检查文件是否存在。
  • remove(): 删除文件。
  • rename(): 重命名文件。

        使用QFile可以很方便地进行文件操作,它提供了跨平台的解决方案,并且可以与Qt的其他组件很好地集成。

二、文件读写流程

        使用QFile进行文件读写的流程如下,包括每个步骤对应的可以使用的函数:

1.打开文件

  • 函数:open()
  • 参数:文件名、打开方式(只读、只写、读写等)、打开模式(文本模式、二进制模式等)

2.读取数据

  • 函数:read(), readLine(), readAll()
  • 参数:读取数据的长度(可选)

3.写入数据

  • 函数:write(), writeData()
  • 参数:要写入的数据,写入数据的长度(可选)

4.设置文件指针位置(可选):

  • 函数:seek()
  • 参数:偏移量、起始位置

5.获取文件大小(可选):

  • 函数:size()

6.检查文件是否存在(可选):

  • 函数:exists()

7.关闭文件

  • 函数:close()

 三、实际操作

 

// 当按钮1被点击时调用的槽函数
void Widget::on_pushButton_clicked()
{// 使用文件对话框获取用户选择的文件名QString fileName = QFileDialog::getOpenFileName(this, "选择文本", "/home/lkang");// 输出选择的文件名到调试窗口qDebug() << fileName << endl;// 设置要打开的文件file.setFileName(fileName);// 打开文件if (!file.open(QIODevice::ReadWrite)) {// 如果文件打开失败,输出错误信息到调试窗口,并返回qDebug() << "文件打开失败" << endl;return;}// 将文件内容读取到 QTextEdit 控件中ui->textEdit->setPlainText(file.readAll());// 关闭文件file.close();
}// 当按钮2被点击时调用的槽函数
void Widget::on_pushButton_2_clicked()
{// 如果文件名为空,则返回if (file.fileName().isEmpty()) {return;}// 打开文件if (!file.open(QIODevice::ReadWrite)) {// 如果文件打开失败,输出错误信息到调试窗口,并返回qDebug() << "文件打开失败" << endl;return;}// 将 QTextEdit 控件中的文本写入文件中(以 UTF-8 编码)file.write(ui->textEdit->toPlainText().toUtf8());// 关闭文件file.close();// 清空 QTextEdit 控件中的文本ui->textEdit->clear();
}

 做大做强,再创辉煌!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/623861.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作的第五天了

1.今天内容 1.现在的基本都增删改查都有 2.下一步做规格商品添加规格的方式 3.商品规格比较特殊 4.我们添加一个商品。通用一个商品&#xff0c;然后下面添加规格信息 5.如何做 6.第一个是添加商品 7.商品对应多个属性方式&#xff0c;简单来说是一个一对多的方式&#x…

想自学网络安全_Web安全,一般人我还是劝你算了吧

由于我之前写了不少网络安全技术相关的文章&#xff0c;不少读者朋友知道我是从事网络安全相关的工作&#xff0c;于是经常有人私信问我&#xff1a; 我刚入门网络安全&#xff0c;该怎么学&#xff1f; 要学哪些东西&#xff1f; 有哪些方向&#xff1f; 怎么选&#xff1f;…

如何将Oracle 中的部分不兼容对象迁移到 OceanBase

本文总结分析了 Oracle 迁移至 OceanBase 时&#xff0c;在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式&#xff0c;通过提前发现并处理这些问题&#xff0c;可以有效规避迁移过程中的报错风险。 作者&#xff1a;余振兴&#xff0c;爱可生 DBA 团队成员&#x…

基于SSM的游戏攻略管理系统

游戏攻略管理系统的构建与实现 一、系统概述二、系统架构与技术选型三、系统功能模块四、系统特点五、总结与展望 随着网络游戏的普及和发展&#xff0c;游戏攻略成为玩家们提升游戏技能、了解游戏机制的重要途径。为了更好地满足玩家需求&#xff0c;提高游戏攻略的管理效率和…

Java——static成员

目录 一.再谈学生类 二.static修饰成员变量 三.static修饰成员方法 四.static成员变量初始化 1.就地初始化 2.静态代码块初始化 一.再谈学生类 使用前面推文&#xff08;Java——类和对象&#xff09;中介绍的学生类实例化三个对象s1、s2、s3&#xff0c;每个对象都有自…

记录 OpenHarmony 使用 request.uploadFile 时踩的坑

​ 开发环境 设备环境&#xff1a;OpenHarmony 4.1.x SDK 版本&#xff1a;API 10 开发模型&#xff1a;Stage 模型 IDLE: Dev Eco 4.1 官方文档 踩坑一&#xff1a;后台服务地址 上传文件依赖后台服务器&#xff0c;如果使用本地搭建的服务&#xff0c;是无法访问的&…

Flex弹性盒子布局案例(认识弹性布局)

一、导航菜单 此示例创建了一个水平导航菜单&#xff0c;其中链接在 Flex 容器中等距分布。 HTML结构&#xff1a; <nav class"nav-menu"><a href"#">Home</a><a href"#">About</a><a href"#">…

【开发问题记录】Nacos修改服务实例权重时报错

问题记录 一、问题描述1.1 产生原因1.2 产生问题 二、问题解决2.1 docker部署的nacos解决方案2.1.1 进入nacos容器2.1.2 查看当前目录2.1.3 进入data文件夹2.1.4 删除protocol文件2.2 本地部署的nacos 一、问题描述 1.1 产生原因 在运行项目时&#xff0c;在本地启动了一个服务…

keil创建单片机工程

一、创建工程 打开Keil uVision4&#xff0c;依次选择 Project—>New uVision4 Project&#xff0c;选择工程保存路径及填写工程名称&#xff0c;如下图 然后点“保存”。在Select a CPU Data Base File中选择"STC MCU Database"&#xff0c;点 "OK"&am…

数据中心IP代理与住宅代理IP有何区别?

一、什么是数据中心/机房IP代理&#xff1f; 数据中心/机房IP代理是使用数据中心拥有并进行分配和管理的IP的代理&#xff0c;俗称机房IP代理。 二、数据中心/机房IP代理的特点 与住宅代理通过使用ISP拥有和分配的IP地址的设备路由请求的情况不同&#xff0c;数据中心代理利…

# ABAP SQL 字符串处理-CONCATCAST

经常我都要在ABAP的sql语句中对字符串进行处理&#xff0c;现在就总结一下可以用到的方法 文章目录 字符串处理拼接字段运行结果 填充字符串运行结果 截取字符串 SUBSTRING运行结果 CAST转换类型程序运行结果 CAST 转换成 DATS类型&#xff08;日期&#xff09; 字符串处理 在…

ubuntu23.10.1 php8.2安装

1、更新镜像源 apt update2、安装php 如果在这里不知道自己Linux能安装什么版本的php,可以使用apt install php,会给你提示&#xff0c;根据提示自己选择版本安装 apt install php我这里是php8.2-cli apt install php8.2-cli其他扩展包&#xff0c;在后面加个-可以查看&…