在java中将对象存储在磁盘上的最佳方法是什么?

时间:2010-07-20 08:57:06

标签: java storage

我想在文件中保存任何类型的对象,并随时恢复它。

我将它用于我想要的面向对象的存储。序列化不是解决方案,因为许多类不实现Serializable。

谢谢

2 个答案:

答案 0 :(得分:2)

有些物品从未打算储存和检索,如果你尝试过,会以惊人的方式打破。任何使用本机资源(文件句柄,套接字等)的东西都是一个很好的例子。这就是Serializable接口存在的原因;它可以部分地保证写入对象并将其读回不会引起奇怪的问题。

如果你想尝试它,你可以想象使用反射来获取对象的内容并将它们填充到文件中。但那将是一个非常糟糕的主意。

答案 1 :(得分:0)

如果对象是您自己的,只需实现Serializable。如果他们归其他人所有,那么就让他们做同样的事情,或者推出自己的序列化机制(可能使用反射)。

请记住,后一个进程非常脆弱(取决于另一个类的内部),如果该类包含不可序列化的对象(如文件句柄或套接字),则可能完全不合适。