ホームページ >バックエンド開発 >Golang >Go 言語ドキュメントの bufio.NewReader 関数を使用してファイルの内容を読み取ります。

Go 言語ドキュメントの bufio.NewReader 関数を使用してファイルの内容を読み取ります。

WBOY
WBOYオリジナル
2023-11-03 20:07:461033ブラウズ

Go 言語ドキュメントの bufio.NewReader 関数を使用してファイルの内容を読み取ります。

Go 言語の bufio パッケージの NewReader 関数を使用すると、ファイルの内容を簡単に読み取ることができます。次に、この関数を使用してファイルを読み取り、いくつかの基本的な操作を実行する方法を見てみましょう。

まず、bufio パッケージをインポートする必要があります。

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

NewReader 関数は、bufio.Reader 型のバッファー リーダーを作成します。このバッファー リーダーは、ファイルのコンテンツを 1 行ずつ読み取り、メモリにキャッシュします。その後の読書のために。

次のコードを使用して、ファイルを読み取って 1 行ずつ印刷できます:

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)
for {
    line, err := reader.ReadString('
')
    if err == io.EOF {
        break
    }
    if err != nil {
        panic(err)
    }
    fmt.Print(line)
}

コードでは、まず test.txt という名前のファイルを開き、エラーが発生した場合は終了します。直接プログラムします。次に、NewReader 関数を使用してバッファー リーダーを作成し、それをファイルに関連付けます。

次に、無限ループで、readString 関数を使用してファイルの内容を 1 行ずつ読み取り、各行を画面に表示します。ファイルの終わり文字 EOF が見つかった場合は、ループから抜け出します。それ以外の場合、別のエラーが発生すると、例外がスローされ、プログラムは終了します。

さらに、ReadBytes 関数を使用してファイル内のバイトを読み取り、strings パッケージを使用してこれらのバイトを操作することもできます。次のコードは、読み取った内容を文字列に変換し、その中の部分文字列を検索する方法を示しています。

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)

content, err := ioutil.ReadAll(reader)
if err != nil {
    panic(err)
}

str := string(content)
if strings.Contains(str, "Hello World") {
    fmt.Println("Found!")
}

このコードでは、まず ReadAll 関数を通じてファイル全体の内容を読み取り、バイト スライスとして保存します。次に、バイト スライスを文字列に変換し、Contains 関数を使用して「Hello World」部分文字列を見つけます。見つかった場合は「Found!」と出力し、見つからなかった場合は何もしません。

bufio パッケージと対応する関数を使用すると、ファイルの内容を簡単に読み取り、操作できます。それだけでなく、このアプローチはファイル全体を一度にメモリに読み込まないため、大きなファイルの処理にも役立ちます。

以上がGo 言語ドキュメントの bufio.NewReader 関数を使用してファイルの内容を読み取ります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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