在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件。
文件结构如图
在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()<<line; } } 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<keylist.count(); i++) { filestream << keylist.value(i) + " : " + fileDate.value(keylist.value(i)).toString() + " "; // filestream << keylist.value(i) << " : " << fileDate.value(keylist.value(i)) << " "; } QMessageBox::warning(NULL,"提示","文件写入完成"); } file.close(); return true; }
两个文件,一个读文件,一个写文件。
都是采用文件流的来读写,这里在读文件数据的方面,目前只是一行一行的从文件中将数据读取出来,还没有写将数据封装成JSON数据包发送给QML
看下运行截图
这是当我点击打开文件时,显示的程序运行截图
下面是当我点击关闭文件是,显示的运行截图
剩下的还在完善中,后期可能会加入对XML文档的支持