如何在不使用对象序列化的情况下在java中写入文件中的对象?

时间:2011-06-27 10:23:24

标签: blackberry

我想写对象到文件。但根据我的研究,我发现没有对象序列化是不可能的。其他方法是将对象转换为字节数组,然后写入文件。但为此,还需要对象序列化。有没有其他方法可以将对象写入文件?因为我想在android和blackberry中使用相同的代码。请帮帮我,我想尽早解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果要将对象写入文件,那么根据定义,您希望将其序列化 - 这就是序列化的含义。如果您只是在寻找一种将数据保存到不依赖于特定于设备的存储机制的文件的方法,那么您将需要编写一些自定义序列化代码。对于要存储在文件中的每个类,您需要执行以下操作:

  1. 编写一个方法,将对象的当前状态存储在某个可写结构中,例如字符串或字节数组
  2. 编写一个将字符串或字节数组转换回对象的方法(将此方法作为参数获取流并使其根据该流中的数据创建新对象可能最简单)< / LI>

    例如,您可以将对象保存为XML或JSON字符串,或者以更有效的方式保存 - 存储它的最佳方式主要取决于您存储的数据类型以及使用它需要执行的操作。

    这样做是很好的做法,以包含一些版本号来定义您正在使用的类的版本,并在序列化对象时首先包含它。这样,当您反序列化时,您可以检查该版本号并知道它是如何序列化的。这使得以后可以轻松更改序列化方案,同时仍然保持与旧文件的向后兼容性。

    如果您只是在寻找与设备无关的通用存储机制,那么您还可以考虑使用SQLite database - 大多数(如果不是全部)现代移动操作系统都支持它们。这比手动滚动自己的序列化更容易,并且通常也会有更好的性能。