golang檔案讀取介紹

2021-07-28 20:19:28 字數 1405 閱讀 2597

golang提供了多種檔案讀取方式,第一種方式,也是最簡單的一種方式,如下:

bytes, err := ioutil.readfile("a.txt")

if err != nil

fmt.println(string(bytes))

該種方式需要引入ioutil包,ioutil.readfile的入參為檔名,返回值分別是檔案內容,和錯誤資訊。

第二種方式需要通過os.open開啟檔案,然後通過ioutil.readall來讀取,如下:

fin, err := os.open("a.txt")

if err != nil

defer fin.close()

bytes, err := ioutil.readall(fin)

if err != nil

fmt.println(string(bytes))

第二種方式需要同時引入os包和ioutil包,os.open入參為檔名,返回值分別是檔案控制代碼和錯誤資訊,ioutil.readall入參為io.reader,因為file實現了io.reader介面(file支援read方法),所以fin可以直接轉換為io.reader,返回值和io.readfile相同。

第三種方式同樣先使用os.open開啟檔案,然後使用file的read方法讀取內容,如下:

fin, err := os.open("a.txt")

if err != nil

defer fin.close()

buf := make(byte, 11)

_, err = fin.read(buf)

if err != nil

fmt.println(string(buf))

與前兩種方式不同,該種方式需要自己管理記憶體。該種方式只需引入os包。

第四種方式同樣需要先使用os.open開啟檔案,然後建立乙個bufio.reader物件,通過bufio.reader物件去讀取內容,如下:

fin, err := os.open("a.txt")

if err != nil

defer fin.close()

rd := bufio.newreader(fin)

buf := make(byte, 11)

_, err = rd.read(buf)

if err != nil

fmt.println(string(buf))

該種方式亦需要自己管理記憶體。表面上看,該種方式多此一舉,但實際並非如此,因為bufio.reader提供了更豐富的處理方法,如readline,readstring,readbytes等,可以減少開發工作。

golang讀取檔案

提前建乙個檔案文字helloworld.txt,現在可以在go程式中使用絕對檔案路徑將helloworld整個檔案讀取。中使用到 ioutol包中的 readfile函式。在go語言標準庫文件中它的用法是 func readfile filename string byte,error 說明 rea...

golang 讀取檔案

使用go語言讀取檔案的各種方式整理。整個檔案讀到記憶體,適用於檔案較小的情況 func readallintomemory filename string content byte,err error defer fp.close fileinfo,err fp.stat if err nil bu...

golang 讀取ini檔案

package main import fmt gopkg.in ini.v1 log time func main 獲取預設分割槽的key fmt.println cfg.section key version string 將結果轉為string fmt.println cfg.section ...