使用golang读取配置文件,配置文件支持配置多台服务器,每个服务器中包含服务器的ID、访问地址、用户名、密码、启动的服务,启动的服务可以存在多个,每个服务有自己的启动参数,每个服务必须包含启动的ID以及其他的参数,提供读取配置到结构体和写入结构体到i配置文件的代码以及参考配置文件
时间: 2023-02-05 17:23:42 浏览: 77
在 Go 语言中,可以使用第三方库来读取和写入配置文件。其中,比较流行的配置文件格式有 JSON、XML 和 TOML。下面是一个使用 TOML 格式读取和写入配置文件的示例。
首先,需要安装 toml 库:
```bash
go get github.com/BurntSushi/toml
```
然后,定义一个结构体来存储配置信息:
```go
type Server struct {
ID int
Address string
Username string
Password string
Services []struct {
ID int
Name string
Protocol string
Port int
Params map[string]string
}
}
```
接下来,可以使用 toml 库的 DecodeFile 函数来读取配置文件:
```go
func readConfig(filename string) ([]Server, error) {
var servers []Server
if _, err := toml.DecodeFile(filename, &servers); err != nil {
return nil, err
}
return servers, nil
}
```
最后,可以使用 toml 库的 NewEncoder 函数来写入配置文件:
```go
func writeConfig(filename string, servers []Server) error {
file, err := os.Create(filename)
if err != nil {
return err
}
defer file.Close()
encoder := toml.NewEncoder(file)
return encoder.Encode(servers)
}
```
参考配置文件示例:
```toml
[[servers]]
ID = 1
Address = "localhost"
Username = "user1"
Password = "pass1"
[[servers.Services]]
ID = 1
Name = "service1"
Protocol = "tcp"
Port = 8080
[[servers.Services]]
ID = 2
Name = "service2"
Protocol = "udp"
Port = 8081
[[servers]]
ID = 2
Address = "192.168.1.1"
Username = "user2"
Password = "pass2"
[[servers.Services]]
ID = 3
Name = "service3"
Protocol = "tcp"
Port = 8080
Params =
阅读全文