我使用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吗?
答案 0 :(得分:0)
您获得异常的原因是您使用的对象不可序列化
我能想到的最简单的解决方案是扩展树的实现:
public class YourSerializableClass extends ConcurrentRadixTree implements Serializable
或者,您可以实现自己的readObject writeObject
方法。更多信息:
https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html