2012-08-06 170 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