ホームページ >バックエンド開発 >Golang >Go でファイルから行を文字列として効率的に読み取るにはどうすればよいですか?

Go でファイルから行を文字列として効率的に読み取るにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 03:18:11589ブラウズ

How to Efficiently Read a Line from a File as a String in Go?

Go の readline to String

Go では、標準ライブラリは、バイト配列を返す readline 操作用の低レベルの raw 関数を提供します。 readline 関数から文字列を取得するもっと便利な方法はありますか?

慣用的な解決策

Go で文字列を readline する慣用的なアプローチは、bufio を利用することです。リーダー構造体。 Readln() 関数は、入力バッファー リーダーから行 (末尾の改行 n なし) を返します。

import (
    "bufio"
    "fmt"
    "os"
)

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
}

func main() {
    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)
    }
}

この関数はファイルから行を読み取り、改行文字 (n) を取り除いて各行を出力します。コンソール。

以上がGo でファイルから行を文字列として効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。