2012-08-06 83 views
0

我正在写一个客户端服务器应用程序,其中服务器通过OutputStream发送一个Vector String对象,在客户端我收到它作为Byte Array。现在如何从Byte array得到Vector String对象?字节数组到矢量字符串

+0

只是一个问题:为什么不使用ObjectOutputStream和/或Serializable对象呢? – Timst 2012-08-06 12:58:00

+2

什么是矢量字符串?发件人如何序列化? Java序列化? XML? JSON?定制机制?向我们展示一些代码。 – 2012-08-06 12:58:01

+0

实际上,服务器可以发送简单的字符串以及Vector of Strings ...现在在客户端我正在接收TCP线程中的字节数组中的所有内容...现在,根据当前显示的Android Activity,我需要将接收字节到简单的字符串或字符串向量...所以我不认为我可以使用ObjectOutputStream ...可能是 – Anjanu 2012-08-06 13:05:45

回答

0

不要发送超过流的对象。序列化矢量<字符串>服务器端的对象并在设备上反序列化它。 您可以使用例如序列化对象JSON。 Google有一个很好的免费版本,可以帮你完成大部分工作,它被称为GSON(http://code.google.com/p/google-gson/)

+0

由于服务器和客户端似乎在Java上运行,他可以跳过JSon步骤,并简单地序列化/反序列化对象(矢量是可序列化的) – Timst 2012-08-06 13:03:27

0

您需要以正确的方式发送,使用可序列化或者先写长度

+0

但我如何区分接收器端如果我收到的字节是一个简单的字符串或者是一个字符串矢量......并且如果它们是字符串矢量如何从接收到的字符串中获得它们字节...我可以得到像String的字符串foo = new String(bytes)...但不是Vectors – Anjanu 2012-08-06 13:13:31