bufio.NewReader関数を使用してバッファ付きの新しいリーダーを作成します

WBOY
リリース: 2023-07-25 12:37:48
オリジナル
1907 人が閲覧しました

タイトル: bufio.NewReader 関数を使用して、バッファーを持つ新しいリーダーを作成する

Go 言語の標準ライブラリでは、bufio パッケージは入出力を処理するためのいくつかの関数と型を提供します。その中で、bufio.NewReader 関数を使用すると、バッファーを備えた新しい Reader オブジェクトを作成でき、データ読み取りのパフォーマンスを効果的に向上させることができます。この記事では、bufio.NewReader 関数の使用方法と、対応するコード例を紹介します。

まず、関連する関数と型を使用するために、bufio および os パッケージをインポートする必要があります。コードは次のとおりです。

package main

import (
    "bufio"
    "fmt"
    "os"
)
ログイン後にコピー

次に、bufio.NewReader 関数を使用して、新しい Reader オブジェクトを作成できます。この関数のパラメータは、io.Reader 型のオブジェクトです。

func main() {
    file, err := os.Open("example.txt")
    if err != nil {
        fmt.Println("打开文件失败:", err)
        return
    }
    defer file.Close()

    reader := bufio.NewReader(file)
}
ログイン後にコピー

上の例では、example.txt という名前のファイルを開き、os.Open 関数を通じてファイル オブジェクトを返しました。ファイルのオープンに失敗した場合は、エラーメッセージが出力されて返却されます。プログラムが終了する前にファイルを閉じる必要があることに注意してください。defer ステートメントを使用すると、関数が戻る前にファイルが確実に閉じられます。

次に、bufio.NewReader 関数を使用して新しい Reader オブジェクトを作成し、それを変数リーダーに割り当てます。この Reader オブジェクトには、ファイルの読み取り効率を向上させるバッファーがあります。この時点で、リーダーの ReadString メソッドを呼び出すことで、ファイルの内容を 1 行ずつ読み取ることができます。

func main() {
    file, err := os.Open("example.txt")
    if err != nil {
        fmt.Println("打开文件失败:", err)
        return
    }
    defer file.Close()

    reader := bufio.NewReader(file)

    for {
        line, err := reader.ReadString('
')
        if err != nil {
            fmt.Println("读取文件失败:", err)
            break
        }
        fmt.Println(line)
    }
}
ログイン後にコピー

上の例では、無限ループを使用してファイル内の各行を継続的に読み取りました。ループを通過するたびに、リーダーの ReadString メソッドを呼び出して行を読み取ります。このメソッドのパラメータは、行の終わりを指定する文字です。上の例では、行末記号として「
」を使用しています。

読み取りに成功すると、読み取り行が印刷されます。読み取りに失敗した場合は、ファイルの終わりまで読み取られたことを意味するため、この時点でエラー メッセージを出力し、ループを終了します。

bufio.NewReader 関数を使用してバッファーを備えた Reader オブジェクトを作成すると、ファイル読み取りのパフォーマンスを効果的に向上させることができます。この記事が、bufio.NewReader 関数の使用方法を理解するのに役立つことを願っています。

以上がbufio.NewReader関数を使用してバッファ付きの新しいリーダーを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!