首頁 > 後端開發 > Golang > 如何在 Go 中從文件中慣用地讀取行?

如何在 Go 中從文件中慣用地讀取行?

Mary-Kate Olsen
發布: 2024-12-13 00:31:09
原創
299 人瀏覽過

How to Idiomatically Read Lines from a File in Go?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板