我正在尝试使用随机访问文件来更新二叉树。但是我只想更新刚刚修改的节点,而不是每次添加节点时都重写整个树。到目前为止,我有两个问题:
我在使用 RandomAccessFile 将对象写入文件时遇到问题。由于它是一个节点对象,RAF 没有任何读/写方法。我确实为我的树类实现了 Serializable 但仍然不确定如何将树写到文件中。
Node<String> mynode = new Node<String>();
RandomAccessFile raf = new RandomAccessFile("raf.txt", "rw");
raf.write(mynode, 0, 100);
我收到一个错误,因为mynode
它不是byte[]
.
我的第二个问题是我不确定如何寻找要覆盖的文件。我所做的是在节点中为 id 添加一个额外的字段,并为 id:position 保留一个哈希图以定位修改的位置。不确定这是否是正确的方法