Qt-QML-C++交互实现文件IO系统-后继-具体文件IO的实现

简介: 在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件。

文件结构如图

image.png

在QML中调用这个类了,就见简单的读取了一个JSON数据的一个属性值。




重点看下我的文件IO Cpp文件





QJsonObject DLFileIOSystem::DLReadFile()

{

   //这里将实现文件的打开并从文件中读取内容



   QFile file("./config.ini");


   if(!file.open(QIODevice::ReadWrite | QIODevice::Text))

   {

       QMessageBox::warning(NULL,"警告","打开文件失败");

   }

   else

   {

       QTextStream filestream(&file);


       QString line;


       while (filestream.readLineInto(&line))

       {


           qDebug()<


       }

   }

   file.close();


   QJsonObject date;

   return fileDate;

}


bool DLFileIOSystem::DLWriteFile()

{

   //这里将实现文件的写入和关闭文件





   QFile file("./config.ini");


   if(!file.open(QIODevice::ReadWrite | QIODevice::Text))

   {

       QMessageBox::warning(NULL,"警A告","打开文件失败");

   }

   else

   {

       QTextStream filestream(&file);


       QStringList keylist = fileDate.keys();


       for (int i = 0; i

       {


           filestream << keylist.value(i) + " : " + fileDate.value(keylist.value(i)).toString() + "\r\n";

//            filestream << keylist.value(i) << " : " << fileDate.value(keylist.value(i)) << "\r\n";

       }

   QMessageBox::warning(NULL,"提示","文件写入完成");

   }

   file.close();


   return true;


}


两个文件,一个读文件,一个写文件。




都是采用文件流的来读写,这里在读文件数据的方面,目前只是一行一行的从文件中将数据读取出来,还没有写将数据封装成JSON数据包发送给QML


看下运行截图

image.png

这是当我点击打开文件时,显示的程序运行截图

下面是当我点击关闭文件是,显示的运行截图image.png

剩下的还在完善中,后期可能会加入对XML文档的支持


目录
相关文章
|
1月前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
86 34
|
2月前
|
存储 算法 安全
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
|
3月前
|
存储 Java API
【JavaEE】——文件IO(万字长文)
文件路径,文本文件,二进制文件,File类,文件流,字节流(InputStream,OutputStream)字符流(Reader,Writer)
|
4月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
5月前
|
存储 Windows
(13) Qt事件系统(two)
文章详细介绍了Qt事件系统,包括事件分发、自定义事件、事件传播机制、事件过滤以及事件与信号的区别。
202 3
(13) Qt事件系统(two)
|
5月前
|
编解码 程序员
(12)Qt事件系统(one)
本文详细介绍了Qt事件系统,包括各种系统事件、鼠标事件、键盘事件、定时器等的处理方法和示例代码。
160 0
|
5月前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
61 0
Linux c/c++文件的基本操作
|
5月前
|
搜索推荐 索引
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
88 2
|
5月前
|
编解码 Java 程序员
【文件IO】文件内容操作
【文件IO】文件内容操作
102 2
|
5月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
126 0

热门文章

最新文章