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 サイトの他の関連記事を参照してください。