go get gopkg.in/yaml.v2
生成配置文件:
package main
import (
"bufio"
"fmt"
"os"
)
func main(){
fd, err := os.OpenFile("./kpid.yaml", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
if err != nil {
panic(err)
}
defer fd.Close()
kk := 1
mm:=fmt.Sprintf("aa: %d", kk)
w := bufio.NewWriter(fd)
n4, err := w.WriteString(mm)
fmt.Printf("wrote %d bytes\n", n4)
w.Flush()
}
如图:
读取配置文件:
package main
import (
"io/ioutil"
"gopkg.in/yaml.v2"
"fmt"
"reflect"
)
func main() {
var c conf
pidval := c.getConf()
fmt.Println(pidval.Aa)
fmt.Println(reflect.TypeOf(pidval.Aa))
}
type conf struct {
Aa int `yaml:"aa"`
}
func (c *conf) getConf() *conf {
yamlFile, err := ioutil.ReadFile("/test/kpid.yaml")
if err != nil {
fmt.Println(err.Error())
}
err = yaml.Unmarshal(yamlFile, c)
if err != nil {
fmt.Println(err.Error())
}
return c
}
如图: