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文档的支持


目录
相关文章
|
2月前
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
99 0
|
2月前
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
114 1
Linux C/C++之IO多路复用(aio)
|
1月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
2月前
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
37 0
Linux C/C++之IO多路复用(poll,epoll)
|
2月前
|
搜索推荐 索引
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
44 2
|
2月前
|
编解码 Java 程序员
【文件IO】文件内容操作
【文件IO】文件内容操作
60 2
|
2月前
|
存储 Java API
【文件IO】文件系统操作
【文件IO】文件系统操作
53 1
|
3月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
246 12
|
3月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
57 3
|
2月前
|
存储 Java 程序员
【Java】文件IO
【Java】文件IO
42 0