I have a variable value declared as Any
in my program.
I want to convert this value to Array[Byte]
.
How can I serialize to Array[Byte]
and back? I found examples related to other types such as Double
or Int
, but not to Any
.
This should do what you need. It's pretty similar to how one would do it in Java.
import java.io.{ByteArrayInputStream, ByteArrayOutputStream, ObjectInputStream, ObjectOutputStream} object Serialization extends App { def serialise(value: Any): Array[Byte] = { val stream: ByteArrayOutputStream = new ByteArrayOutputStream() val oos = new ObjectOutputStream(stream) oos.writeObject(value) oos.close() stream.toByteArray } def deserialise(bytes: Array[Byte]): Any = { val ois = new ObjectInputStream(new ByteArrayInputStream(bytes)) val value = ois.readObject ois.close() value } println(deserialise(serialise("My Test"))) println(deserialise(serialise(List(1)))) println(deserialise(serialise(Map(1 -> 2)))) println(deserialise(serialise(1))) }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With