使用golang读取ini的配置文件,配置文件包含多个服务器信息,服
时间: 2023-02-05 20:53:15 浏览: 159
golang 使用 viper 读取自定义配置文件
务器信息由多行组成,每行为一个键值对,如何使用golang解析这个配置文件?
在golang中,可以使用第三方包 "gopkg.in/ini.v1" 来读取和解析ini格式的配置文件。
下面是一个示例代码:
```
package main
import (
"fmt"
"gopkg.in/ini.v1"
)
type Server struct {
Address string
Port int
}
func main() {
// 读取配置文件
cfg, err := ini.Load("config.ini")
if err != nil {
fmt.Printf("Fail to read file: %v", err)
return
}
// 获取所有服务器信息
servers := cfg.SectionStrings()
fmt.Println(servers)
// 遍历每个服务器信息
for _, serverName := range servers {
server := cfg.Section(serverName)
fmt.Println(serverName)
// 读取键值对
address, err := server.GetKey("address")
if err != nil {
fmt.Println("Fail to get address:", err)
} else {
fmt.Println("Address:", address.String())
}
port, err := server.Key("port").Int()
if err != nil {
fmt.Println("Fail to get port:", err)
} else {
fmt.Println("Port:", port)
}
}
}
```
在这个示例代码中,我们使用ini包中的Load函数读取配置文件,然后使用SectionStrings函数获取所有的服务器信息,并遍历每个服务器信息。对于每个服务器信息,我们使用Section函数获取该服务器信息的所有键值对,然后使用GetKey函数和Key
阅读全文