2013-04-24 74 views
0

我的第一个问题是,我应该序列化arrayList中的每个单独的对象还是应该序列化整个arrayList,因为我知道ArrayLists是可序列化的。从服务器发送序列化对象的ArrayList到客户端(TCP)

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

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

回答

0

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

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

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

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

+0

你认为你可以给我一个关于如何通过TCP发送序列化的ArrayList的线索,比如什么类型的流或者我应该做些什么? – 2013-04-24 01:30:39

+0

@Anienien Eh?你已经提到过你自己的ObjectOutputStream。这就是答案。 – EJP 2013-04-24 01:40:35

+0

哦,好的。因此,只需将对象添加到像普通的arrayList,然后使用objectOutputStream来发送ArrayList,对吧? – 2013-04-24 01:47:00

0

无论如何实现序列化项目,您还需要序列化您发送它们的任何内容。我没有看到序列化可序列化列表与单独执行序列化之间没有实际区别。那么你仍然需要序列化列表本身。

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

+0

谢谢,但我认为我需要坚持ObjectInputStream。我不知道我的老师是否认可XML序列化并批准它。 – 2013-04-24 01:31:33

+0

“您还需要序列化您发送的任何内容”。不,你不会。您*只*需要序列化容器。 – EJP 2013-04-24 04:22:11

+0

OP特别询问他是否可以序列化内容。虽然我同意你所有你需要的是序列化该集合,但OP正在考虑逐项序列化。我的观点是,无论你的效率如何 - 无论是一次一个还是一个一个,事实上,收集本身必须被序列化,才能在jvm之外发送。 – 2013-04-24 16:47:13

相关问题