Go語言如何讀取設定檔

來源:互聯網
上載者:User
如何讀取設定檔

config.go

package confimport (    "bufio"    "io"    "os"    "strings")func InitConfig(path string) map[string]string {    //初始化    myMap := make(map[string]string)    //開啟檔案指定目錄,返回一個檔案f和錯誤資訊    f, err := os.Open(path)    //異常處理 以及確保函數結尾關閉檔案流    if err != nil {        panic(err)    }    defer f.Close()    //建立一個輸出資料流向該檔案的緩衝流*Reader    r := bufio.NewReader(f)    for {        //讀取,返回[]byte 單行切片給b        b, _, err := r.ReadLine()        if err != nil {            if err == io.EOF {                break            }            panic(err)        }        //去除單行屬性兩端的空格        s := strings.TrimSpace(string(b))        //fmt.Println(s)        //判斷等號=在該行的位置        index := strings.Index(s, "=")        if index < 0 {            continue        }        //取得等號左邊的key值,判斷是否為空白        key := strings.TrimSpace(s[:index])        if len(key) == 0 {            continue        }        //取得等號右邊的value值,判斷是否為空白        value := strings.TrimSpace(s[index+1:])        if len(value) == 0 {            continue        }        //這樣就成功吧設定檔裡的屬性key=value對,成功載入到記憶體中c對象裡        myMap[key] = value    }    return myMap}

main.go

package mainimport (    "conf"    "fmt")func main() {    //匯入設定檔    configMap := conf.InitConfig("src/db_configuration.txt")    //擷取配置裡host屬性的value    fmt.Println(configMap["host"])    //查看設定檔裡所有索引值對    fmt.Println(configMap)}

db_configuration.txt

host=localhostport=5432user=postgrespasswor=123dbname=test

結果:

localhostmap[port:5432 user:postgres passwor:123 dbname:test host:localhost]

值得注意的是:路徑可以寫絕對路徑和相對路徑,即db_configuration.txt的位置如果是放在工程下和src同級,則”src/db_configuration.txt”,如果放在隨便一個地方,就得寫全路徑”G:\java_workspace\test_config\src\db_configuration.txt”,斜杠要轉義
其實/和\等價,左斜杠不需要轉義

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.