Golang でのファイル ポインタの巻き戻し
Golang では、ファイルを複数回読み取るためにファイル ポインタを巻き戻す必要があるシナリオに遭遇することがあります。回。これを実現するには、主に 2 つのオプションがあります:
この方法は、最も単純で効率的なアプローチと考えられています。 。引数 (0, 0) または (0, io.SeekStart) を指定して File.Seek 関数を呼び出すと、ポインターをファイルの先頭に設定できます。
data.Seek(0, 0)
このアプローチにより、高速かつ確実にファイルを閉じて再度開く必要がなく、簡単に巻き戻すことができるため、ファイルの異なるセクションを複数回読み取る必要があるシナリオに適しています。
または、ファイルを閉じて、2 回目の読み取りの前に再度開くこともできます。このメソッドには、ファイルの先頭に新しいファイル オブジェクトとファイル ポインタを作成するという利点があります。ただし、特に大きなファイルの場合、ファイルを開くのはシークに比べて比較的遅くなる可能性があることに注意することが重要です。したがって、このアプローチは、パフォーマンスが重要なシナリオにはあまり推奨されません。
io.Reader としてのファイルの使用:
Golang では、*os.File タイプは次のように実装されます。 io.Reader インターフェイス。これは、変換や中間リーダーを必要とせずに *os.File を io.Reader として直接使用できることを意味します。したがって、提供したコード スニペットは正しく、意図したとおりに動作します。
r := csv.NewReader(data)
*os.File を io.Reader として使用すると、追加のリーダーが不要になり、コード。
以上がGolang でファイル ポインタを巻き戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。