問題:
考慮一個名稱為AppMessage 的可序列化類別的場景需要透過套接字傳輸到另一台機器並根據接收到的位元組進行重建。目標是探索在 Java 中實現此目標的技術。
解決方案:
要準備用於傳輸的位元組數組,請使用序列化方法:
static byte[] serialize(final Object obj) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try (ObjectOutputStream out = new ObjectOutputStream(bos)) { out.writeObject(obj); out.flush(); return bos.toByteArray(); } catch (Exception ex) { throw new RuntimeException(ex); } }
相反,要從位元組數組重新建立對象,請使用反序列化方法:
static Object deserialize(byte[] bytes) { ByteArrayInputStream bis = new ByteArrayInputStream(bytes); try (ObjectInput in = new ObjectInputStream(bis)) { return in.readObject(); } catch (Exception ex) { throw new RuntimeException(ex); } }
這些方法可以實作Java物件的高效序列化和反序列化,方便它們透過套接字傳輸以便在接收機器上重建。
以上是如何序列化和反序列化 Java 物件以進行套接字通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!