Problem:
Stellen Sie sich ein Szenario vor, in dem eine serialisierbare Klasse namens AppMessage muss über Sockets an eine andere Maschine übertragen und aus den empfangenen Bytes neu erstellt werden. Ziel ist es, Techniken zum Erreichen dieses Ziels in Java zu erforschen.
Lösung:
Um das Byte-Array für die Übertragung vorzubereiten, verwenden Sie die Serialisierungsmethode:
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); } }
Umgekehrt verwenden Sie die Deserialisierung, um ein Objekt aus einem Byte-Array neu zu erstellen Methode:
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); } }
Diese Methoden ermöglichen eine effiziente Serialisierung und Deserialisierung von Java-Objekten und erleichtern deren Übertragung über Sockets zur Rekonstruktion auf dem empfangenden Computer.
Das obige ist der detaillierte Inhalt vonWie kann ich Java-Objekte für die Socket-Kommunikation serialisieren und deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!