Jquery中文网 www.jquerycn.cn
Jquery中文网 >  后端编程  >  Go语言  >  正文 Go获取解析本地Config配置文件

Go获取解析本地Config配置文件

发布时间:2021-05-28   编辑:www.jquerycn.cn
jquery中文网为您提供Go获取解析本地Config配置文件等资源,欢迎您收藏本站,我们将为您提供最新的Go获取解析本地Config配置文件资源

Go获取解析本地Config配置文件

学习了Go语言后,打算利用最近比较空一点,写一个前端部署工具,不需要每次都复制粘贴的麻烦,我们希望再工具打包后,还可以在外面配置参数,所以我们在本地放一个config.txt文件用于配置

这是本地配置文件内容

LocalUser=123
LocalPassWord=123
LocalHost=192.168.2.52
LocalPort=22
LocalLocalPath=C:/AStack/NewAStack/dist
LocalRemotePath=D:/softwares/dist
TestUser=root
TestPassWord=Dafeng@2698
TestHost=47.99.93.122
TestPort=22
TestLocalPath=C:/AStack/NewAStack/dist
TestRemotePath=/home/dist
ProdUser=
ProdPassWord=
ProdHost=
ProdPort=22
ProdLocalPath=C:/AStack/NewAStack/dist
ProdRemotePath=D:/softwares/dist

直接看代码(注释清晰)

//创建了一个结构体,里面分别是本地服务器/测试服/正式服的一些部署需要的信息
//这里字段必须是大写开头,因为接下来需要用反射给属性赋值,大写才可以取到
type Config struct {
	LocalUser string
	LocalPassWord string
	LocalHost string
	LocalPort int
	LocalLocalPath string
	LocalRemotePath string
	TestUser string
	TestPassWord string
	TestHost string
	TestPort int
	TestLocalPath string
	TestRemotePath string
	ProdUser string
	ProdPassWord string
	ProdHost string
	ProdPort int
	ProdLocalPath string
	ProdRemotePath string
}

func GetConfig() Config {
//创建一个空的结构体,将本地文件读取的信息放入
  	c := &Config{}
  	//创建一个结构体变量的反射
	cr := reflect.ValueOf(c).Elem()
	//打开文件io流
  	f,err := os.Open("./config.txt")
	if err != nil {
		log.Fatal(err)
	}
	defer func() {
		if err = f.Close(); err != nil {
			log.Fatal(err)
		}
	}()
	//我们要逐行读取文件内容
	s := bufio.NewScanner(f)
	for s.Scan() {
	//以=分割,前面为key,后面为value
		var str = s.Text()
		var index = strings.Index(str,"=")
		var key = str[0:index]
		var value = str[index   1:]
		//因为Port是int,所以我们这里要将截取的string强转成int
		if strings.Contains(key,"Port") {
			var i,err = strconv.Atoi(value)
			if err != nil {
				panic(err)
			}
			//通过反射将字段设置进去
			cr.FieldByName(key).Set(reflect.ValueOf(i))
		}else {
		//通过反射将字段设置进去
			cr.FieldByName(key).Set(reflect.ValueOf(value))
		}

	}
	err = s.Err()
	if err != nil {
		log.Fatal(err)
	}
	//返回Config结构体变量
	return *c
}

使用这个方法我们就获取了配置参数的对象

到此这篇关于“Go获取解析本地Config配置文件”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go获取解析本地Config配置文件
Golang 配置文件热加载
golang开源配置管理组件-go-archaius介绍
golang读取配置文件
go基于viper实现配置文件热更新及其源码分析
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
PHP数组式访问-ArrayAccess示例解析
golang几种常用配置文件使用方法总结(yaml、toml、json、xml、ini)
go读取toml文件配置文件
想系统学习GO语言(Golang

[关闭]