ホームページ > バックエンド開発 > Golang > Go でファイルから慣用的に行を読み取る方法?

Go でファイルから慣用的に行を読み取る方法?

Mary-Kate Olsen
リリース: 2024-12-13 00:31:09
オリジナル
303 人が閲覧しました

How to Idiomatically Read Lines from a File in Go?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート