Serializzazione e deserializzazione di oggetti in Kotlin

Mattepuffo's logo
Serializzazione e deserializzazione di oggetti in Kotlin

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!


Condividi

Commentami!