当前位置:网站首页>关于软件常用的各种配置文件YAML、JSON、ini、XML比较
关于软件常用的各种配置文件YAML、JSON、ini、XML比较
2022-07-19 15:36:00 【标biao】
如果我们的程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件主要就是用来存储 键 - 值 对的,就是类似一个map作用。所以自己设计一种简单的配置文件格式,也未尝不可,只是因为已经有大量的成熟配置文件格式可用,就用已有的吧。
配置文件有很多,如INI配置文件,XML配置文件,YAML,JSON,还有就是可以使用系统注册表等。关于这些配置文件各有优缺点,主要就是两方面:
表达能力
就是这种配置文件能够表达的数据格式的丰富性,比如一个复杂的数据结构,能否表达出来。
xml > yaml > toml > json > plist > ini
人类可读性
就是这种配置文件,直接用记事本等纯文本编辑器打开时,能否容易看懂其表达的内容。
ini > toml > yaml > json > xml > plist
总结
一般简单场合,其实ini配置文件就够用了(比较经典,用的人多,windows系统最常见),支持最基本的 键 - 值 对的使用,而且可读性太好了。还支持注释。解析速度也快。有开源库可用(因为文件格式真的很简单,自己写几个简单的解析函数也很快)。当然文件后缀名也不一定是ini啦,是其它的也行,因为解析函数能解析其内容就行了。
simpleini/README.md at master · brofield/simpleini · GitHub
c++中解析ini 文件的simpleIni库_香飘飘cj的博客-CSDN博客_c++ ini文件解析
当然,对数据结构复杂一些的,用json也够了(用的人多,比如vscode的配置文件就是这个),各种编程语言都有成熟的开源库。这个算是表达能力和可读性的一种权衡的配置文件吧,但是,它不支持注释。
如果要求更高,就选表达能力更强的配置文件吧,但是可读性会差,解析速度也会差了。
所以,我一般用ini和json的比较多。
参考文章:
边栏推荐
- Runtime. getRuntime(). Addshutdownhook (New thread()) usage
- Browser event loop
- 树莓派4B解析PWM
- 玩转时习知No.3 | 企业学习资源被浪费?学习地图一招解决!
- mongoDB之简介与安装
- 如何免费搭建个人网站
- 2021-07-06 Li Kou daily question
- Download pictures according to the URL and save them locally. Please leave a message if there is a problem
- Matic recorded a double-digit increase. What might be the new target?
- Nature子刊综述:焦虑和抑郁的性别差异—回路和机制
猜你喜欢
随机推荐
Swift初始化相关内容
SVG创意下划线样式js特效
信标组的比赛路径设计
[UE4] human matting in complex background - flying plasma AI paddlepaddle depth training model
Dom——通过关系获取元素
如何创建一个简易的Electron桌面程序
基于SSM+MySQL+Bootstrap的在线购物商城系统
基于JSP+Servlet+MySQL+的在线购物电子商务商城系统
发现增长新动力,企业到底需要一朵什么样的云?
Two ways to write JDBC
Redis核心原理
Practice of data storage scheme in distributed system
数据仓库开发 SQL 使用技巧总结
Entry development environment configuration
Swift initialization related content
Unreal Engine01:环境配置
Yuntu says digital asset chain: your God of digital asset property protection
[performance optimization] MySQL performance optimization storage engine tuning
大厂算法反复面试-最长递增子序列
JMeter学习笔记002-JMeter之响应断言