Go 中慣用的行讀取
儘管 Go的標準庫中提供了低階位元組數組返回行讀取函數,但更簡單的方法存在更慣用的方法來從讀取行獲取字串
解決方案
要從檔案無縫逐行讀取,可以使用Readln(*bufio.Reader) 函數。它從提供的 bufio.Reader 結構中檢索一行(不包括換行符)。
這是示範Readln 用法的程式碼片段:
// Readln returns a single line (without the ending \n) // from the input buffered reader. // An error is returned iff there is an error with the // buffered reader. func Readln(r *bufio.Reader) (string, error) { var (isPrefix bool = true err error = nil line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln),err }
此函數可用於讀取檔案中的每一行:
f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ",err) os.Exit(1) } r := bufio.NewReader(f) s, e := Readln(r) for e == nil { fmt.Println(s) s,e = Readln(r) }
此程式碼從指定檔案中逐行讀取並將每行列印到標準輸出。
以上是如何在 Go 中從文件中慣用地讀取行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!