Serializzazione e deserializzazione di oggetti in Java

Mattepuffo's logo
Serializzazione e deserializzazione di oggetti in Java

Serializzazione e deserializzazione di oggetti in Java

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 Java.

Partiamo dal nostro oggetto:

package org.example;

import java.io.Serial;
import java.io.Serializable;

public class Persona implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;
  private int id;
  private String email;

  public Persona(int id, String email) {
    this.id = id;
    this.email = email;
  }

  public int getId() {
    return id;
  }

  public String getEmail() {
    return email;
  }
}

Nulla di trascendentale.

Vediamo qui sotto come serializzare una lista e poi deserializzarla:

package org.example;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    String fileSer = "data.ser";

    try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileSer))) {
      List<Persona> list = new ArrayList<>();
      list.add(new Persona(1, "a@a.it"));
      list.add(new Persona(2, "b@b.it"));

      oos.writeObject(list);
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }

    try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileSer))) {
      List<Persona> list = (List<Persona>) ois.readObject();

      for (Persona p : list) {
        System.out.println(p.getId() + " - " + p.getEmail());
      }
    } catch (IOException | ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
  }
}

Enjoy!


Condividi

Commentami!