使用golang读取ini的配置文件,配置文件包含多个服务器信息,服务器信息可以动态添加,每个服务器中包含服务器的ID、访问地址、用户名、密码、启动的服务,启动的服务可以存在多个,每个服务必须包含启动的ID以及其他的参数,提供读取和写入配置文件的案例包括ini文件
时间: 2023-02-05 19:53:17 浏览: 169
使用 golang 读取 ini 配置文件,你可以使用第三方包来解决。我推荐使用 `gcfg` 包。
下面是一个示例,展示了如何使用 `gcfg` 包来读取一个 ini 格式的配置文件:
```
package main
import (
"fmt"
"log"
"gopkg.in/gcfg.v1"
)
type Config struct {
Server struct {
ID string
Address string
Username string
Password string
}
Services struct {
Service []struct {
ID string
Name string
Port int
}
}
}
func main() {
var cfg Config
err := gcfg.ReadFileInto(&cfg, "config.ini")
if err != nil {
log.Fatalf("Failed to parse gcfg data: %s", err)
}
fmt.Println("Server ID:", cfg.Server.ID)
fmt.Println("Server Address:", cfg.Server.Address)
fmt.Println("Username:", cfg.Server.Username)
fmt.Println("Password:", cfg.Server.Password)
fmt.Println("Number of services:", len(cfg.Services.Service))
for _, service := range cfg.Services.Service {
fmt.Println("Service ID:", service.ID)
fmt.Println("Service Name:", service.Name)
fmt.Println("Service Port:", service.Port)
}
}
```
这个示例假设你有一个名为 `config.ini` 的 ini 配置文件,文件内容如下:
```
[Server]
ID=server1
Address=localhost:8000
Username=admin
Password=password
[Services]
Service.1.ID=service1
Service.1.Name=service1name
Service.1.Port=8000
Service.2.ID=service2
Service.2.Name=service2name
Service.2.Port=8001
```
运行这个程序后,它会输出以下信息:
```
Server ID: server1
Server Address: localhost:8000
Username: admin
Password: password
Number of services: 2
Service ID: service1
Service Name: service1name
Service Port: 8000
Service ID: service2
Service Name: service2name
Service Port: 8001
```
如果你想修改配置文件,可
阅读全文