qt android文件读写文件,qt android 开发之写入xml配置文件篇
应用初始化本地数据,需要读取配置文件,小编介绍如何通过xml简单写入配置文件,至于为什么选择这个格式,主要因为在qml中有一个很好
的类使用:XmlListModel
xmlListModel能直接读取xml配置文件,快速方便开发,再加上自己写一个专门写入配置文件的类,两个就成了绝配啊!
代码:
datasbase.h
#ifndef DATASBASE_H
#define DATASBASE_H
#include
#include
#include
#include
#include
class DatasBase : public QObject
{
Q_OBJECT
public:
explicit DatasBase(QObject *parent = 0);
~DatasBase();
Q_INVOKABLE void setFileName(QString filename);
Q_INVOKABLE void writeStartDocument();
Q_INVOKABLE void writeStartElement(QString str);
Q_INVOKABLE void writeTextElement(QString elementT, QString content);
Q_INVOKABLE void writeEndElement();
Q_INVOKABLE void writeEndDocument();
Q_INVOKABLE bool openplaylistFile();
Q_INVOKABLE void closeplaylistFile();
signals:
public slots:
private:
QFile *playListDatas;
QDir *playListDatasdir;
QXmlStreamWriter *xmlWriter;
};
#endif // DATASBASE_H
datasbase.cpp
#include "datasbase.h"
#include
DatasBase::DatasBase(QObject *parent) : QObject(parent)
{
//"file:///mnt/android/data/colorlight/playlist->xml"
//配置文件的路径
playListDatasdir=new QDir("/mnt/sdcard/Android/data/colorlight/playlist.xml");
//判断是否存在文件
if(!playListDatasdir->exists()){
qDebug()<mkdir("/mnt/sdcard/Android/data/colorlight");
}
//初始化配置数据
playListDatas=new QFile("/mnt/sdcard/Android/data/colorlight/playlist.xml");
xmlWriter=new QXmlStreamWriter(playListDatas);
xmlWriter->setAutoFormatting(true);
qDebug()<absolutePath();
}
DatasBase::~DatasBase()
{
}
//设置配置文件的文件名
void DatasBase::setFileName(QString filename){
playListDatas->setFileName(filename);
}
bool DatasBase::openplaylistFile(){
return playListDatas->open(QIODevice::WriteOnly | QIODevice::Text);
}
void DatasBase::writeStartDocument(){
xmlWriter->writeStartDocument();
}
void DatasBase::writeStartElement(QString str){
xmlWriter->writeStartElement(str);
}
void DatasBase::writeTextElement(QString elementT, QString content){
xmlWriter->writeTextElement(elementT,content);
}
void DatasBase::writeEndElement(){
xmlWriter->writeEndElement();
}
void DatasBase::writeEndDocument(){
xmlWriter->writeEndDocument();
}
void DatasBase::closeplaylistFile(){
playListDatas->close();
}
通过这个类,我们可以方便在qml中调用写入数据配置的文件
下面是写入音乐列表配置的代码例子
XmlListModel{
id:playlistModel
source:"file:///mnt/sdcard/Android/data/colorlight/playlist.xml"
query: "/data/music"
XmlRole{
name:"name";query: "name/string()";isKey: true
}
XmlRole{
name:"path";query: "path/string()";isKey: true
}
onStatusChanged: {
if(status==XmlListModel.Ready){
for(var mindex=0;mindex
tempplaylistdata.append({"name":playlistModel.get(mindex).name,
"path":playlistModel.get(mindex).path})
}
}
}
}
ListModel{
id:tempplaylistdata
}
//保存扫描后的音乐文件
function saveDatas(){
if(tempplaylistdata.count==0){
return
}
// console.log()
datasbase.openplaylistFile()
datasbase.writeStartDocument()
datasbase.writeStartElement("data")
for(var a=0;a
datasbase.writeStartElement("music")
datasbase.writeTextElement("name",tempplaylistdata.get(a).name)
datasbase.writeTextElement("path",tempplaylistdata.get(a).path)
datasbase.writeEndElement()
}
datasbase.writeEndElement()
datasbase.writeEndDocument()
datasbase.closeplaylistFile()
}
qt android文件读写文件,qt android 开发之写入xml配置文件篇相关推荐
- android请求读写外设权限,android读写文件完整版
鉴于实现android文件读写的惨痛经历,我决定将其实现过程写下来.其实网站上关于这方面的博客.讨论很多,我也看了很多,但都不太完整(也可能是我没看明白),导致我在这个问题上纠结了足足4天,在完成前1 ...
- Android sdcard读写文件(二)
继续说sdcard读写文件的情况,这篇博客说的是在sdcard根目录中读写文件,着重的而是多种方式的读写文件.直接给出代码: FileService.java package com.llp.clas ...
- Android中读写文件的N种方法
在android或者java中读写文件时,我们常常面临不知道该用哪种方法来实现,今天我们一起来总结一下N种读写文件的方法. 一.文件输入输出流读写文件 public void writeFileStr ...
- Android的读写文件权限
/**测试没通过* 写文件* @param str*/public void write(String str){File file = new File(Environment.getExterna ...
- QT二进制流方式读写文件
ui内容为两个按钮加一个文本编辑控件,以字节流方式保存一个文件,然后以流方式打开并通过转码显示. #include "mywidget.h" #include "ui_m ...
- Java文件读写操作(c站最全!一篇就够了)
写在前面 你们好,我是小庄.很高兴能和你们一起学习Java.如果您对Java感兴趣的话可关注我的动态. 写博文是一种习惯,在这过程中能够梳理和巩固知识. Java文件读写操作 一.File类 ...
- Android单元测试读写文件,xml-如何为android单元测试提供数据文件
我正在开发使用Android的java.xml.parsers.DocumentBuilder和DocumentBuilderFactory实现从XML文件加载信息的软件. 我正在编写对象的单元测试, ...
- Android单元测试读写文件,Android Studio单元测试:读取数据(输入)文件
根据android-gradle-plugin版本: 1.版本1.5和更高版本: 只需把json文件到src / test / resources / test.json并引用它 classLoade ...
- android 创建目录/文件/读写文件
1.创建目录及文件 private void mkdir_folder_file(){ File folder = new File("/sdcard/test"); if ...
最新文章
- Matlab随笔之矩阵入门知识
- 关于开源网管软件选型的几点思考
- [Life Sciences.AI]专栏介绍及内容分类(持续更新......)
- 平滑重启更新(GR机制)
- 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程
- [Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能
- 大数据python试卷_大数据起步--Python语言-中国大学mooc-试题题目及答案
- bzoj2146 Construct
- php手机端多图预览上传,JS实现多图预览上传的实例代码
- IP、TCP、UDP、HTTP头部信息
- LeetCode 559. N叉树的最大深度
- 用SQL表达内连接和外链接
- adb pull 报错处理:adb: error: cannot create file/directory 'E:\': No such file or directory
- 黑马程序员全套Java教程_Java基础教程_目录
- Dev ChartControl 显示设置百分比
- 多多客id是什么意思_拼多多skuid是什么意思(关于sku编码的详细介绍)
- EEE(Energy Efficient Ethernet)-节能以太网
- matlab语音算法,[转载]RLS算法多麦克风语音降噪( matlab编程 )
- 君子周而不比,小人比而不周
- 综述|姿态估计方法大盘点
热门文章
- esxi备份,datastore,vmdk
- 您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项...
- 好好学一遍JavaScript 笔记(一)
- 引用类型赋值“.NET技术”为null与加速垃圾回收
- [数据库字典]简单的3个SQL视图搞定所有SqlServer数据库字典
- mysqldump的几个主要选项探究
- @初学编程的朋友们,如果你能学得这些方法,学习将会更快一步!
- plsql中文乱码,显示问号
- 数字化转型的4个阶段,从报表到可视化再到数据平台,谁更重要?
- 程序员每天少吃===活120岁