From d5a1ec8b54c1c3c516d07f1916276cd6e5a937e4 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 23 Nov 2024 11:34:42 -0500 Subject: runicast: use DatagramChannel --- src/main/java/derms/io/Serial.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/derms/io/Serial.java (limited to 'src/main/java/derms/io/Serial.java') diff --git a/src/main/java/derms/io/Serial.java b/src/main/java/derms/io/Serial.java new file mode 100644 index 0000000..b5b2299 --- /dev/null +++ b/src/main/java/derms/io/Serial.java @@ -0,0 +1,24 @@ +package derms.io; + +import java.io.*; +import java.nio.ByteBuffer; + +public class Serial { + public static ByteBuffer encode(Serializable obj) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(obj); + oos.flush(); + ByteBuffer buf = ByteBuffer.wrap(baos.toByteArray()); + oos.close(); + return buf; + } + + public static T decode(ByteBuffer buf, Class clazz) throws IOException, ClassNotFoundException { + ObjectInputStream ois = new ObjectInputStream( + new ByteArrayInputStream(buf.array())); + T obj = clazz.cast(ois.readObject()); + ois.close(); + return obj; + } +} -- cgit v1.2.3