Interfaz serializable en Java

La interfaz serializable está presente en el paquete java.io. Es una interfaz de marcador . Una interfaz de marcador no tiene métodos ni campos. Por lo tanto, las clases que lo implementan no tienen que implementar ningún método. Las clases lo implementan si quieren que sus instancias se serialicen o deserialicen. La serialización es un mecanismo para convertir el estado de un objeto en un flujo de bytes. La serialización se realiza mediante ObjectOutputStream . La deserialización es el proceso inverso en el que se utiliza el flujo de bytes para recrear el objeto Java real en la memoria. Este mecanismo se utiliza para persistir el objeto. La deserialización se realiza mediante ObjectInputStream . Por lo tanto, se puede utilizar para hacer elegible para guardar su estado en un archivo. 

Declaración

public interface Serializable

Ejemplo: El siguiente ejemplo muestra una clase que implementa la interfaz serializable.

Java

// Java Program to demonstrate a class
// implementing Serializable interface
  
import java.io.Serializable;
  
public static class Student implements Serializable {
    public String name = null;
    public String dept = null;
    public int id = 0;
}

Aquí puede ver que la clase Student implementa Serializable, pero no tiene ningún método para implementar desde Serializable.

Ejemplo: El siguiente código de ejemplo explica cómo serializar y deserializar un objeto .

Java

// Java program to illustrate Serializable interface
import java.io.*;
  
// By implementing Serializable interface
// we make sure that state of instances of class A
// can be saved in a file.
class A implements Serializable {
    int i;
    String s;
  
    // A class constructor
    public A(int i, String s)
    {
        this.i = i;
        this.s = s;
    }
}
  
public class Test {
    public static void main(String[] args)
        throws IOException, ClassNotFoundException
    {
        A a = new A(20, "GeeksForGeeks");
  
        // Serializing 'a'
        FileOutputStream fos
            = new FileOutputStream("xyz.txt");
        ObjectOutputStream oos
            = new ObjectOutputStream(fos);
        oos.writeObject(a);
  
        // De-serializing 'a'
        FileInputStream fis
            = new FileInputStream("xyz.txt");
        ObjectInputStream ois = new ObjectInputStream(fis);
        A b = (A)ois.readObject(); // down-casting object
  
        System.out.println(b.i + " " + b.s);
  
        // closing streams
        oos.close();
        ois.close();
    }
}

Producción:

20 GeeksForGeeks

Debe leer: serialización y deserialización en Java

Publicación traducida automáticamente

Artículo escrito por Ganeshchowdharysadanala y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *