目录
- 案js例目标
- 应用场景
- 涉及知识点
- 示例配置文件(config.ini)
- 示例代码:简单 INI 文件解析器
- 执行输出示例
- 技术说qsanH明
- 小结
案例目标
使用 Go 语言解析一个 .ini
格式的配置文件,提取其中的键值对,并按 section 分类存储。
应用场景
- • 开发需要加载外部配置(如数据库、服务端口等)的小工具或服务
- • 学习如何读取和解析结构化文本
- • 简易配置系统的实现
涉及知识点
- • 文件读取与按行解析
- • 字符串处理:去空格、分割、前缀判断
- •
map[string]map[string]string
多层结构 - • 处理注释和空行
示例配置文件(config.ini)
# 系统配置 [server] host = 127.0.0.1 port = 8080 [database] user = root password = 123456 dbname = testdb
示例代码:简单 INI 文件解析器
package main import ( "bufio" "fmt" javascript "os" "strings" ) funchttp://www.devze.com parseINI(filePath string) (map[string]map[string]string, error) { config := make(map[string]map[string]string) var currentSection string file, err := os.Open(filePath) if err != nil { return nil, err } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) // 忽略注释和空行 if line == "" || strings.HASPrefix(line, "#") || strings.HasPrefix(line, ";") { continue } // 处理 section if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") { currentSection = strings.TrimSpace(line[1 : len(line)-1]) config[currentSection] = make(map[string]string) } else { // 处理 key=value parts := strings.SplitN(line, "=", 2) if len(parts) == 2 && currentSection != "" { key := strings.TrimSpace(parts[0]) value := strings.TrimSpace(parts[1]) config[currentSection][key] = value } } } if err := scanner.Err(); err != nil { return nil, err } return config, nil } func main() { iniPath := "config.ini" config, err := parseINI(iniPath) if err != nil { fmt.Println("解析失败:", err) return } // 打印解析结果 for section, kv := range config { fmt.Println("[" + section + "]") for key, value := range kv { fmt.Printf("%s = %s\n", key, value) } fmt.Println() } }
执行输出示例
[server] host = 127.0.0.1 port = 8080 [database] user = root password = 123456 dbname = testdb
技术说明
功能 | 用法 |
---|---|
去除空格 | strings.TrimSpace() |
判断开头结尾 | strings.HasPrefix(), strings.HasSuffix() |
分割键值对 | strings.SplitN(str, "=", 2) |
多层 map 存储结构 | map[section]map[key]value |
小结
通过本案例,你掌握了如何读取 .ini
配置文件并将其解析为结构化数据,是很多服务启动时加载配置的基础实践。
以上就是使用Go解析.ini配置文件格式的操作教程的详细内容,更多关于Go解析.ini文件格式的资料qsanH请关注编程客栈(www.devze.com)其它相关文章!
精彩评论