如何在java中实现序列化

时间:2011-03-01 19:34:43

标签: java

您好我正在寻找可用于实现最佳序列化的任何开源。

我在谈论,是否有更好的处理序列化的开源(很受欢迎)。

3 个答案:

答案 0 :(得分:4)

序列化内置于java。对于大多数课程,您只需实现java.io.Serializable,您的课程“神奇地”变为可序列化。然后你可以使用java.io.ObjectOutputStream& java.io.ObjectInputStream来读取和写入您的对象。

如果需要自定义序列化,请将以下方法添加到类中以覆盖序列化行为。他们必须匹配这些签名完全

private void writeObject(ObjectOutputStream out) throws IOException {
  //YOUR WRITE CODE HERE
}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
  // YOUR READ CODE HERE
}

答案 1 :(得分:4)

要么看一下Java源代码(是的,它附带了JDK,但是在一个名为src.zip的文件中拉链),或者查看JBossSerialization,它更快并且减小了序列化的对象。我前段时间编写了自己的版本,速度提高了6倍,产生的数据少了6倍,但它需要双方都知道确切的类结构,所以它只能用作通信协议而不能用于持久存储。

答案 2 :(得分:2)

你在找protobuf之类的东西吗?正如其他评论者所说的那样,我对你最初写的问题感到困难。