ランダムアクセスファイルを使用してバイナリツリーを更新しようとしています。ただし、ノードを追加するたびにツリー全体を書き換えるのではなく、変更したばかりのノードのみを更新したいと思います。これまでに2つの質問があります。
RandomAccessFileを使用してファイルにオブジェクトを書き込む際に問題が発生しました。これはノードオブジェクトであるため、RAFには読み取り/書き込みメソッドはありません。ツリークラスにSerializableを実装しましたが、ツリーをファイルに書き出す方法がわかりません。
Node<String> mynode = new Node<String>();
RandomAccessFile raf = new RandomAccessFile("raf.txt", "rw");
raf.write(mynode, 0, 100);
mynode
ではないため、エラーが発生しますbyte[]
。
私の2番目の問題は、上書きするファイルを探す方法がわからないことです。私がしたことは、idのノードにフィールドを追加し、変更する場所を見つけるためにid:positionのハッシュマップを保持することです。これが正しい方法かどうかわからない