ホームページ > バックエンド開発 > Golang > 書き込み後に Go *os.File ポインタを巻き戻してデータを最初から読み取るにはどうすればよいですか?

書き込み後に Go *os.File ポインタを巻き戻してデータを最初から読み取るにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-10 21:47:25
オリジナル
473 人が閲覧しました

How to Rewind a Go *os.File Pointer After Writing to Read Data From the Beginning?

Go で同じ *os.File に書き込まれたデータを読み取るためにファイル ポインターをシークする

Go で *os.File ポインターを使用してファイルを操作する場合、ファイル ポインタがどのように機能するかを理解することが重要です。ファイル ポインタは、ファイル内の現在位置を追跡します。ファイルに書き込むと、ファイル ポインタは書き込まれたデータの最後まで自動的に進みます。

あなたの場合、同じ *os.File ポインタからデータを書き込み、次に読み取りたいと考えています。ただし、書き込みループの後、ファイル ポインターはファイルの末尾に配置されるため、ファイルの先頭から読み取ろうとしても何も読み取れなくなります。

この問題を解決するには、次のことを行う必要があります。 「巻き戻し」は、ファイルからの読み取りを試行する前に、ファイル ポインタをファイルの先頭に戻します。これは、*os.File ポインターの Seek 関数を使用して実現できます。

その方法は次のとおりです。

_, err := f.Seek(0, 0)
if err != nil {
    fmt.Println("Error", err)
}
ログイン後にコピー

上記のコードは、ファイルの先頭をシークして、引数はオフセットの場合は 0、開始位置 (ファイルの先頭) の場合は 0 です。これで、io.EOF エラーが発生することなくファイルを読み取ることができます。

以上が書き込み後に Go *os.File ポインタを巻き戻してデータを最初から読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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