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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-02 12:53:40612ブラウズ

How Can I Efficiently Read an Entire File into a String in Go?

Go でファイル全体を文字列に読み取る

多数の小さなファイルを処理する場合、各行を個別に読み取るのは非効率的になる可能性があります。 Go には、ファイル全体を 1 つの文字列変数に読み込むための便利な関数が用意されています。

非推奨の ioutil パッケージを使用した解決策:

古い ioutil パッケージには、と呼ばれる関数が含まれています。バイトスライスへのファイルの読み取りを可能にする ReadFile:

func ReadFile(filename string) ([]byte, error)

この関数はバイトを返すことに注意してくださいスライス。必要に応じて文字列に変換する必要があります:

s := string(buf)

io パッケージを使用した解決策 (新しいコードに推奨):

io パッケージは、 ioutil.ReadFile:

func ReadAll(r io.Reader) ([]byte, error)

の最新かつ推奨される代替手段。この関数は入力として io.Reader を必要とします。 os.Open:

file, err := os.Open(filename)
if err != nil {
    // Handle error
}
data, err := io.ReadAll(file)
if err != nil {
    // Handle error
}

結果のバイト スライスは、必要に応じて再度文字列に変換できます。

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

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