diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-23 11:34:42 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-23 11:34:42 -0500 |
| commit | d5a1ec8b54c1c3c516d07f1916276cd6e5a937e4 (patch) | |
| tree | 34f4ed7975803f573d16a7215ae39a9b2791a9b9 /src/main/java/derms/io | |
| parent | e3df4a078afd37314d330daa2de0883f8dd1811b (diff) | |
| download | soen423-d5a1ec8b54c1c3c516d07f1916276cd6e5a937e4.zip | |
runicast: use DatagramChannel
Diffstat (limited to 'src/main/java/derms/io')
| -rw-r--r-- | src/main/java/derms/io/Serial.java | 24 |
1 files changed, 24 insertions, 0 deletions
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 extends Serializable> T decode(ByteBuffer buf, Class<T> clazz) throws IOException, ClassNotFoundException { + ObjectInputStream ois = new ObjectInputStream( + new ByteArrayInputStream(buf.array())); + T obj = clazz.cast(ois.readObject()); + ois.close(); + return obj; + } +} |