go语言读取配置文件
go get https://github.com/aWildProgrammer/fconf
如下演示文件保存为demo.ini
[mysql]
db1.Name = testMysqlDB
db1.Host = 127.0.0.1
db1.Port = 3306
db1.User = root
db1.Pwd = test
; 测试INI风格的注释
; 这两行数据的前前面加入了分号,所以,这些数据被认为是注释,将不会影响配置文件正常状况
[tcp]
Port=3309
mysql
func main() {
c, err := fconf.NewFileConf("./demo.ini")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(c.String("mysql.db1.Host"))
fmt.Println(c.String("mysql.db1.Name"))
fmt.Println(c.String("mysql.db1.User"))
fmt.Println(c.String("mysql.db1.Pwd"))
// 取得配置时指定类型
port, err := c.Int("mysql.db1.Port")
if err != nil {
panic("~")
}
fmt.Println(port)
}git
json使用
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,
采用彻底独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,
同时也易于机器解析和生成,并有效地提高网络传输效率。github
新建一个文件名为conf.json,键入内容:
{
"enabled": true,
"path": "/usr/local"
}
package mainsql
import (
"encoding/json"
"fmt"
"os"
)编程
type configuration struct {
Enabled bool
Path string
}json
func main() {
file, _ := os.Open("conf.json")
defer file.Close()网络
decoder := json.NewDecoder(file)
conf := configuration{}
err := decoder.Decode(&conf)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println(conf.Path)
}tcp
xml使用
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具备结构性的标记语言。
新建一个文件名为conf.xml,键入内容:
<?xml version="1.0" encoding="UTF-8" ?>
<Config>
<enabled>true</enabled>
<path>/usr/local</path>
</Config>编程语言
package main测试
import (
"encoding/xml"
"fmt"
"os"
)
type configuration struct {
Enabled bool `xml:"enabled"`
Path string `xml:"path"`
}
func main() {
xmlFile, err := os.Open("conf.xml")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer xmlFile.Close()
var conf configuration
if err := xml.NewDecoder(xmlFile).Decode(&conf); err != nil {
fmt.Println("Error Decode file:", err)
return
}
fmt.Println(conf.Enabled)
fmt.Println(conf.Path)
}