Go での慣用的な行読み取り
Go の標準ライブラリでは低レベルのバイト配列を返す行読み取り関数が利用可能であるにもかかわらず、 readline から文字列を取得するには、より慣用的なアプローチが存在します。
解決策
ファイルから 1 行ずつシームレスに読み取るには、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) }
このコードは、指定されたファイルから 1 行ずつ読み取り、各行を出力します。標準出力へ。
以上がGo でファイルから慣用的に行を読み取る方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。