go语言学习笔记 — 基础 — 基本数据类型 — 字符串(10):实战 —— 从.INI配置文件中,查询需要的值
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本数据类型 — 字符串(10):实战 —— 从.INI配置文件中,查询需要的值相关的知识,希望对你有一定的参考价值。
.ini文件是一种古老的配置文件格式。在一些操作系统、虚幻游戏引擎、git版本管理中都在使用.ini文件格式。下面展示了.ini文件的样式。
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = https://github.com/davyxu/cellnet
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
.ini文件的格式
- .ini文件由多行文本组成,整个配置由[]分割为多个段section。每个段中,又用=分割为键和值
- .ini文件以";"置于行首视为注释,注释行将不会被处理和识别。
[section1]
key1=value1
key2=value2
...
[section2]
...
从.ini文件中取值的函数
熟悉了.ini文件的格式后,开始准备读取.ini文件,并从文件中获取需要的数据。
- 使用os.Open(),以二进制方式打开文件
go内置的os包提供了文件打开函数os.Open(),文件读取完成后需要及时关闭,否则文件会发生占用,系统无法释放缓冲资源。
// 打开文件
file, err := os.Open(filename)
// 文件找不到,返回空
if err != nil {
return ""
}
// 在函数结束时,关闭文件
defer file.Close()
使用关键字defer,延迟执行函数。defer并不会在这一行立即执行,而是延迟在任何一个getValue()函数的返回点(也就是函数退出的地方),调用file.Close(),关闭打开的文件,释放系统资源。
- 使用bufio.NewReader(),构造一个读取器reader,读取二进制文件;然后使用reader.ReadString从二进制文件中获取字符串和err;接着使用strings.TrimSpace()去除字符串中可能的空白;最后使用strings.Split(),切开等号分割的键值对。
reader := bufio.NewReader(file)
linestr, err := reader.ReadString('\\n')
linestr = strings.TrimSpace(linestr)
pair := strings.Split(linestr, "=")
以上是关于go语言学习笔记 — 基础 — 基本数据类型 — 字符串(10):实战 —— 从.INI配置文件中,查询需要的值的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符
go语言学习笔记 — 基础 — 基本数据类型 — 原生数据类型:布尔型数字类型(整型与浮点型)字符串类型
go语言学习笔记 — 基础 — 基本数据类型 — 字符串(11):go中的字符串
go语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型