Object serialization: Difference between revisions

Content added Content deleted
mNo edit summary
(Added Kotlin)
Line 1,175: Line 1,175:
}
}
}</lang>
}</lang>

=={{header|Kotlin}}==
{{trans|Java}}
<lang scala>// 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)
}
}</lang>

{{out}}
<pre>
Brian
Entity
Serialized...
Deserialized...
Brian
Entity
</pre>


=={{header|Objective-C}}==
=={{header|Objective-C}}==