最近在自己的Go系统下需要配置一个属性文件,并且需要能够用程序进行动态修改和保存属性值。于是在Go官方自带的API里寻找,结果没找到。(无语,这种属性文件的处理功能在JAVA里面太容易获得了。)最后,询问了QQ群里的朋友,才找到一款勉强实现属性文件增删改查功能的Go组件。组件首页:https://github.com/kless/goconfig。
安装:go get github.com/kless/goconfig/config
使用:
1、它的属性文件格式。
1)section部分. 一个属性文件可以分多个section,每个section可以有多条属性. 2)属性部分.由分隔符分开。分隔符默认是": "(冒号加空格)。也可以是"="。 举个例子:
[Section1]foodir: %(dir)s/whatever
dir: foo
[Section2]
jdkdir=/usr/lib/jdk17
2、读取属性和检查属性是否存在
c, _ := config.ReadDefault("config.cfg")
str,_:=c.String("Section2", "jdkdir")
//检查属性是否存在
if c.HasOption("Section2", "no-option"){}
3、增加属性
c.AddOption("jvm_setup","JVMLIB_PATH","D:/jdk17/lib/")
4、删除属性
c.RemoveOption("jvm_setup","JVMLIB_PATH")
5、修改属性并保存(这个功能是我摸索出来的,官方文档没有提到,但确实能用,凑合着用吧)
c.RemoveOption("jvm_setup","JVMLIB_PATH")
c.AddOption("jvm_setup","JVMLIB_PATH","D:/jdk17/lib/")
c.WriteFile("jvm.cfg",0644, "Test file for test-case")
注意:这个组件的一个小bug,最后一行行末要加个回车符,否则,最后一行属性无法读取。