Serializzazione e deserializzazione di oggetti in Kotlin
Nella programmazione la serializzazione e la deserializzazione di oggetti sono operazioni molto comuni.
Pensate banalmente ai dati che arrivano da database o web api.
In questo articolo vediamo un esempio in Kotlin.
Partiamo dal nostro oggetto:
package org.example
import java.io.Serializable
class Persona(val id: Int, val email: String?) : Serializable {
companion object {
private const val serialVersionUID = 1L
}
}
Nulla di trascendentale.
Vediamo qui sotto come serializzare una lista e poi deserializzarla:
package org.example
import java.io.*
fun main() {
val fileSer = "data.ser"
try {
ObjectOutputStream(FileOutputStream(fileSer)).use { oos ->
val list: MutableList<Persona?> = ArrayList()
list.add(Persona(1, "a@a.it"))
list.add(Persona(2, "b@b.it"))
oos.writeObject(list)
}
} catch (e: IOException) {
println(e.message)
}
try {
ObjectInputStream(FileInputStream(fileSer)).use { ois ->
val list = ois.readObject() as MutableList<Persona>
for (p in list) {
println(p.id.toString() + " - " + p.email)
}
}
} catch (e: IOException) {
println(e.message)
} catch (e: ClassNotFoundException) {
println(e.message)
}
}
Enjoy!
kotlin serializable objectoutputstream objectinputstream
Commentami!