欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語言如何讀取配置文件 go語言讀取excel

go 怎么寫入conf配置文件

為了快速聲明配置文件中的全局變量而寫的封裝包,大家笑納,廢話少說,直接上方法。

10年積累的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有忠縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.首先,下載包:

1

2

go get "github.com/luckykris/go-utilbox/Env"

go get "github.com/luckykris/go-utilbox/Conf/ReadConf"

2.書寫配置文件(例):

vim test.cfg,寫入如下配置內(nèi)容:

1

2

3

4

5

6

7

8

[gms]

port = 2016

[db]

db = mysql

user = root

password = redhat

port = 3306

host = 127.0.0.1

3.寫一個test.go來獲取配置文件里的配置,并且將所有配置文件內(nèi)的信息聲明全局變量,注意,你需要在go代碼里提前定義各項(xiàng)配置的數(shù)據(jù)類型(string,int目前只支持兩類)以及默認(rèn)值。如下列g(shù)o代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

package main

import(

"github.com/luckykris/go-utilbox/Env"

"github.com/luckykris/go-utilbox/Conf/ReadConf"

"fmt"

)

func main(){

Init()

}

func Init(){

//定義gms配置區(qū)域

gms:=ReadConf.CONFIG{

AREA:"gms",//區(qū)域名

CONF:map[string]ReadConf.CONFIGROW{

"port":{TYPE:"int",EXIT:false,DEFAULT:1},//具體配置,

//此條為port配置默認(rèn)值為1

//類型為int

//注意:如果標(biāo)明類型是int默認(rèn)值

//不要加雙引號“”不然會被認(rèn)為 //是字符串.

//false的意思是,當(dāng)配置文件里讀 //取不到這個配置的時候程序退出

},

}

//定義db配置區(qū)域

db:=ReadConf.CONFIG{

AREA:"db",//區(qū)域名

CONF:map[string]ReadConf.CONFIGROW{

"port":{TYPE:"int",EXIT:false,DEFAULT:3306},

"db":{TYPE:"string",EXIT:false,DEFAULT:"mongo"},

"user":{TYPE:"string",EXIT:false,DEFAULT:"root"},

"password":{TYPE:"string",EXIT:false,DEFAULT:"root"},

"host":{TYPE:"string",EXIT:false,DEFAULT:"localhost"},

},

}

//讓程序讀取配合文件,并且把需要提取的配置區(qū)域變量傳入LodConf函數(shù)

//這個函數(shù)執(zhí)行之后,所有實(shí)現(xiàn)定義的配置就都生成全局變量了。

ReadConf.LoadConf("test.cfg",gms,db)

//以下是對配置文件的全局變量的調(diào)用方式,用Env.ENV["配置區(qū)域/配置條目"].(類型)

//因?yàn)榉祷氐闹凳莍nterface{}類型的,所以需要自己轉(zhuǎn)換下類型。

fmt.Printf("gms/port:%d\n",Env.ENV["gms/port"].(int))

fmt.Printf("db/port:%d\n",Env.ENV["db/port"].(int))

fmt.Printf("db/db:%s\n",Env.ENV["db/db"].(string))

fmt.Printf("db/user:%s\n",Env.ENV["db/user"].(string))

fmt.Printf("db/password:%s\n",Env.ENV["db/password"].(string))

fmt.Printf("db/host:%s\n",Env.ENV["db/host"].(string))

}

4.以下就是執(zhí)行此GO程序后的輸出結(jié)果啦:

1

2

3

4

5

6

7

[root@gbz.test.org GoMonitorServer]# go run test.go

gms/port:2016

db/port:3306

db/db:mysql

db/user:root

db/password:redhat

db/host:127.0.0.1

Go語言文件操作

本文主要介紹了Go語言中文件讀寫的相關(guān)操作。

文件是什么?

計(jì)算機(jī)中的文件是存儲在外部介質(zhì)(通常是磁盤)上的數(shù)據(jù)集合,文件分為文本文件和二進(jìn)制文件。

os.Open() 函數(shù)能夠打開一個文件,返回一個 *File 和一個 err 。對得到的文件實(shí)例調(diào)用 close() 方法能夠關(guān)閉文件。

為了防止文件忘記關(guān)閉,我們通常使用defer注冊文件關(guān)閉語句。

Read方法定義如下:

它接收一個字節(jié)切片,返回讀取的字節(jié)數(shù)和可能的具體錯誤,讀到文件末尾時會返回 0 和 io.EOF 。 舉個例子:

使用for循環(huán)讀取文件中的所有數(shù)據(jù)。

bufio是在file的基礎(chǔ)上封裝了一層API,支持更多的功能。

io/ioutil 包的 ReadFile 方法能夠讀取完整的文件,只需要將文件名作為參數(shù)傳入。

os.OpenFile() 函數(shù)能夠以指定模式打開文件,從而實(shí)現(xiàn)文件寫入相關(guān)功能。

其中:

name :要打開的文件名 flag :打開文件的模式。 模式有以下幾種:

perm :文件權(quán)限,一個八進(jìn)制數(shù)。r(讀)04,w(寫)02,x(執(zhí)行)01。

Go 各種方式加載配置文件

go run 或者 go build后在配置目錄的相對路徑上執(zhí)行

假設(shè)當(dāng)前目錄如下:

├─config

│ │ main.go

│ │

│ └─file // 配置文件目錄

│ config.ini

也就是說無論你是go run或者build后的執(zhí)行程序,都應(yīng)該在你執(zhí)行目錄下

有該配置文件路徑如file/config.ini

否則就會發(fā)生以下錯誤, 無法讀取配置文件

panic: Error:can not read file "./file/config.ini"

使用絕對路徑讀取配置文件

如果配置文件動態(tài)的話, 具體怎么傳入 配置文件路徑

go-bindata 把配置文件打包進(jìn)去

5.1 使用遠(yuǎn)程配置中心去讀取配置

新聞標(biāo)題:go語言如何讀取配置文件 go語言讀取excel
新聞來源:http://chinadenli.net/article30/dogcjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名品牌網(wǎng)站設(shè)計(jì)虛擬主機(jī)電子商務(wù)移動網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名