gob
エンコードされたデータを単純なデータストアとしてディスク上のファイルに保存しようとしています。ただし、次に開くと、ゴブエンコーダーはファイルに既にあるデータを無視し、データを送信する前に既に送信された形式の定義を送信し始めます。ではなくgob.Encoder
がかかるのを見ると、これは理にかなっています。エンコーダーはファイルから読み取ることができないため、ファイルの内容を認識していません。io.Writer
io.ReadWriter
ただし、これは非常に非効率的です。また、gob タイプ ID が変更されている可能性があるため、ファイルへの書き込み時にエンコーダーが再起動するたびにデコーダーをリセットする必要があるため、解析が不必要に難しくなります。
gob データを含むファイルの最後まで書き込みを続けるにはどうすればよいですか? 新しいファイルを作成し、すべてのデータを移動して、gob エンコーダーが既に送信した型を認識できるようにする必要がありますか、またはエンコーダーに既に知っておくべき型を伝える方法、または他の方法はありますか? ソフトウェアの再起動後も機能する必要があります。