知识点 读取配置文件

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)

}

相关文章
相关标签/搜索