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

Go でテキスト ファイルから 1 行を文字列に効率的に読み取るにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-20 08:10:14608ブラウズ

How to Efficiently Read a Single Line from a Text File into a String in Go?

Go でテキスト ファイルから文字列を読み取る

Go でテキスト ファイルを操作する場合、次の行を読み取ることが望ましい場合があります。テキストを文字列に変換します。標準ライブラリはバイト配列を返す低レベル関数を提供しますが、より便利な方法は、このタスクを直接処理する特殊な関数を使用することです。

解決策

以下コードは、テキスト ファイルから 1 行を文字列に読み取る方法を示しています。

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

// ReadLine reads a single line from a file.
func ReadLine(r *bufio.Reader) (string, error) {
    var (
        isPrefix bool = true
        err       error
        line, ln  []byte
    )

    for isPrefix && err == nil {
        line, isPrefix, err = r.ReadLine()
        ln = append(ln, line...)
    }

    return string(ln), err
}

func main() {
    fi := `<path-to-your-file>`
    f, err := os.Open(fi)
    if err != nil {
        fmt.Println("error opening file= ", err)
        os.Exit(1)
    }
    defer f.Close()

    r := bufio.NewReader(f)
    s, e := ReadLine(r)
    for e == nil {
        fmt.Println(s)
        s, e = ReadLine(r)
    }
}

このコードは、指定されたファイルを開き、ファイルを初期化します。バッファされたリーダーを呼び出し、ReadLine 関数を呼び出してファイルから各行を読み取ります。結果の文字列は標準出力に出力されます。

使用法

バッファ リーダーで ReadLine 関数を呼び出して、単一行の内容を文字列として取得します。 ReadLine 関数は、入力に改行文字が存在しない場合に複数行の読み取りを処理します。

このアプローチにより、バイト配列を処理して手動で文字列に変換する必要がなくなり、行指向の読み取りを行うシンプルで効率的な方法が提供されます。テキスト ファイル。

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

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