将RadixTree保存为文件

时间:2014-12-03 14:39:13

标签: java tree

我使用ConcurrentRadixTree并将> 100万字进去吧。 这棵树的创建需要很长时间,所以我想过只创建一次树并将其保存为文件 - >所以我可以从文件中加载我的树以供下次使用,而不是再次创建它(这应该快得多)。

File file = new File(myPath);
FileOutputStream f = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(myTree);
s.close();

但是当我尝试存储时,我得到了#34; NotSerializableException":

Exception in thread "main" java.io.NotSerializableException: com.googlecode.concurrenttrees.radix.ConcurrentRadixTree
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at ForTests.main(Test.java:29)

知道如何存储RadixTree吗?

1 个答案:

答案 0 :(得分:0)

您获得异常的原因是您使用的对象不可序列化

我能想到的最简单的解决方案是扩展树的实现:

public class YourSerializableClass extends ConcurrentRadixTree implements Serializable

或者,您可以实现自己的readObject writeObject方法。更多信息:

https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html