(de)将Java对象序列化为文件的最佳方法是什么

时间:2013-01-14 12:21:41

标签: java serialization

我想将Java对象保存到文件中(稍后进行单元测试)。我已经尝试过JSON,但由于我没有对我正在序列化的对象拥有类,因此反序列化变得比它的价值更多。 (现有类的getter和setter重载了不同类型,Jackson无法弄清楚如何反序列化对象)

现在我正在探索其他途径(即序列化为二进制或其他格式)。我想知道是否有任何东西可以将Java对象转储到二进制文件/文件,以便反序列化是微不足道的。我知道您可以使用Serializable接口执行此操作,但我不再拥有这些不实现此接口的类,因此无法修改它们。

3 个答案:

答案 0 :(得分:7)

您还可以使用XStream,这不依赖于已实现Serializable接口的类。

答案 1 :(得分:0)

如果他们实施Serializable您不需要拥有它们(也不需要修改它们),您只需使用ObjectOutputStream将它们写入文件,然后使用ObjectInputStream将其读回来

假设这些类具有正确的getter和setter,那么你应该没有问题

答案 2 :(得分:0)

您也可以使用Kryo。基准(herehere)表示它是最快的序列化/反序列化之一,并且使用的空间也更少。它也不需要Serializable来实现。也就是说,我从未亲自使用它。