58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
// version 1.2.0
|
|
|
|
import java.io.*
|
|
|
|
open class Entity(val name: String = "Entity"): Serializable {
|
|
override fun toString() = name
|
|
|
|
companion object {
|
|
val serialVersionUID = 3504465751164822571L
|
|
}
|
|
}
|
|
|
|
class Person(name: String = "Brian"): Entity(name), Serializable {
|
|
companion object {
|
|
val serialVersionUID = -9170445713373959735L
|
|
}
|
|
}
|
|
|
|
fun main(args: Array<String>) {
|
|
val instance1 = Person()
|
|
println(instance1)
|
|
|
|
val instance2 = Entity()
|
|
println(instance2)
|
|
|
|
// serialize
|
|
try {
|
|
val out = ObjectOutputStream(FileOutputStream("objects.dat"))
|
|
out.writeObject(instance1)
|
|
out.writeObject(instance2)
|
|
out.close()
|
|
println("Serialized...")
|
|
}
|
|
catch (e: IOException) {
|
|
println("Error occurred whilst serializing")
|
|
System.exit(1)
|
|
}
|
|
|
|
// deserialize
|
|
try {
|
|
val inp = ObjectInputStream(FileInputStream("objects.dat"))
|
|
val readObject1 = inp.readObject()
|
|
val readObject2 = inp.readObject()
|
|
inp.close()
|
|
println("Deserialized...")
|
|
println(readObject1)
|
|
println(readObject2)
|
|
}
|
|
catch (e: IOException) {
|
|
println("Error occurred whilst deserializing")
|
|
System.exit(1)
|
|
}
|
|
catch (e: ClassNotFoundException) {
|
|
println("Unknown class for deserialized object")
|
|
System.exit(1)
|
|
}
|
|
}
|