Điều này sẽ làm những gì bạn cần. Nó khá giống với cách người ta làm điều đó trong 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)))
}
Nguồn
2016-09-07 13:43:17
Làm thế nào bạn có thể serialize một cái gì đó khi bạn không biết nó là gì? –
Tôi có cùng một câu hỏi .. Nó là một đầu vào từ một người dùng, nó có thể là hình ảnh, số, chuỗi .. và sau đó tôi cần phải chuyển đổi nó thành Array [Byte] để tôi có thể lưu nó vào DB – Ectoras
Nếu nó là một đầu vào từ người dùng, sau đó nó đã là một 'String', phải không? Vậy tại sao không chỉ lưu trữ 'Chuỗi'? –