从服务器向客户端(TCP)发送序列化对象的ArrayList

时间:2013-04-24 01:08:56

标签: java serialization tcp arraylist

我的第一个问题是我应该序列化arrayList中的每个单独的对象,还是应该序列化整个arrayList,因为我知道ArrayLists是可序列化的。

另外,我如何将它从服务器发送到客户端。我正在考虑在服务器端使用ObjectOutputStream。但我认为我的导师希望每个对象都被序列化。

如何序列化每个对象,然后将其添加到ArrayList。将它添加到ArrayList之后,我需要将ArrayList发送到客户端,在接收到它之后,将对每个对象进行反序列化并读取它。

2 个答案:

答案 0 :(得分:0)

无论您如何实现序列化项目,您还需要序列化您发送的任何内容。我认为序列化可序列化列表与单独执行序列化之间没有真正区别。然后你仍然需要序列化列表本身。

如果您不需要使用ObjectInputStream,只是为了序列化和发送,请考虑使用XML。例如,您有两个选项 - XMLEncoder / XMLDecoder(较旧)或JAXB(较新)。 XML序列化优于ObjectInput / OutputStream的一个优点是数据是文本的,并且(相对)人类可读在线上。

答案 1 :(得分:0)

  

如何序列化每个对象,然后将其添加到ArrayList。

你不会。您只需将其添加到ArrayList并序列化即可。

  

将它添加到ArrayList之后,我需要将ArrayList发送到客户端,在接收到它之后,将对每个对象进行反序列化并读取它。

没有。客户端将反序列化ArrayList。完成。