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!
java serializable objectoutputstream objectinputstream
Commentami!