我正在尝试实现 BTree。我已经完成了树的工作,并且对于较小的输入效果很好,这意味着我已经在内存中实现了树。现在我想玩大型输入,我必须将树写入文件。我不知道从哪里开始。我正在使用 Java,我没有做太多的“磁盘写入”编码。任何帮助将不胜感激。如果有人想帮助我举一个更好的例子。
问问题
3906 次
2 回答
3
如果您的 BTree 及其节点实现 Serialiable,您可以使用 ObjectOutputStream 和 FileOutputStream 将树及其内容写入文件。它很容易测试:将它写到一个 .ser 文件中,再读回它,然后看看你已经恢复了原来的 BTree。
Java Almanac有一些很好的例子,它们会有所帮助。
更新:我没有看到您在进行修改时动态编写的用例或“不想编写整个树”。
你的建议似乎慢得不可思议。将内存中的每个更改与对文件的相应修改进行镜像将需要很长时间。
如果您尝试进行自己的数据库实现,这是有道理的。你想到了什么场景?
于 2009-12-06T18:05:56.480 回答
1
您可能想看看这个问题。
于 2010-12-22T21:41:29.087 回答