ホームページ > バックエンド開発 > Golang > Golang でファイル ポインタを巻き戻すにはどうすればよいですか?

Golang でファイル ポインタを巻き戻すにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 19:21:17
オリジナル
417 人が閲覧しました

How to Rewind a File Pointer in Golang?

Golang でのファイル ポインタの巻き戻し

Golang では、ファイルを複数回読み取るためにファイル ポインタを巻き戻す必要があるシナリオに遭遇することがあります。回。これを実現するには、主に 2 つのオプションがあります:

  1. ファイルの先頭までシークする:

この方法は、最も単純で効率的なアプローチと考えられています。 。引数 (0, 0) または (0, io.SeekStart) を指定して File.Seek 関数を呼び出すと、ポインターをファイルの先頭に設定できます。

data.Seek(0, 0)
ログイン後にコピー

このアプローチにより、高速かつ確実にファイルを閉じて再度開く必要がなく、簡単に巻き戻すことができるため、ファイルの異なるセクションを複数回読み取る必要があるシナリオに適しています。

  1. ファイルを閉じて再度開く:

または、ファイルを閉じて、2 回目の読み取りの前に再度開くこともできます。このメソッドには、ファイルの先頭に新しいファイル オブジェクトとファイル ポインタを作成するという利点があります。ただし、特に大きなファイルの場合、ファイルを開くのはシークに比べて比較的遅くなる可能性があることに注意することが重要です。したがって、このアプローチは、パフォーマンスが重要なシナリオにはあまり推奨されません。

io.Reader としてのファイルの使用:

Golang では、*os.File タイプは次のように実装されます。 io.Reader インターフェイス。これは、変換や中間リーダーを必要とせずに *os.File を io.Reader として直接使用できることを意味します。したがって、提供したコード スニペットは正しく、意図したとおりに動作します。

r := csv.NewReader(data)
ログイン後にコピー

*os.File を io.Reader として使用すると、追加のリーダーが不要になり、コード。

以上がGolang でファイル ポインタを巻き戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート