¿Cómo serializar HashMap en Java?

La serialización es el proceso mediante el cual convertimos un objeto en un flujo de bytes y almacenamos estos bytes en sistemas de archivos/bases de datos o los colocamos en la red para moverlos de una ubicación a otra.

La deserialización es el proceso inverso a la serialización. La deserialización consiste en recuperar los objetos del flujo de bytes.

Hashmap : un HashMap almacena elementos en pares clave/valor, y podemos acceder a ellos mediante un índice de otro tipo (como una string).

Ahora, para serializar cualquier cosa, debe implementar la interfaz java.io.Serializable y HashMap también implementa la interfaz Serializable. Luego, después de serializar HashMap, aprenderemos cómo deserializar el hashmap en Java.

Ejemplo 1: serialización de HashMap de claves de string y valores de string

En este ejemplo, estamos serializando HashMap, donde las claves y los valores son las strings. Estamos utilizando el método writeObject() de ObjectOutputStream para serializar HashMap en Java. En el siguiente programa, guardamos el contenido del mapa hash en un archivo newHashMap serializado . Una vez que ejecute el siguiente código, se creará un archivo newHashMap . Este archivo se utiliza para la deserialización en el próximo programa próximo.

Java

// Java program on how to Serialize HashMap in Java
  
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.HashMap;
  
public class HashMapExample1 {
    public static void main(String[] args)
    {
        HashMap<String, String> foodType = new HashMap<>();
  
        // storing data in HashMap
        foodType.put("Burger", "Fastfood");
        foodType.put("Cherries", "Fruit");
        foodType.put("Fish", "Seafood");
        foodType.put("Spinach", "Vegetables");
        foodType.put("Chicken", "Protein-Rich");
  
        // try catch block
        try {
            FileOutputStream myFileOutStream
                = new FileOutputStream(
                    "/Users/piyushkumar/Downloads/Java/newHashMap.txt");
  
            ObjectOutputStream myObjectOutStream
                = new ObjectOutputStream(myFileOutStream);
  
            myObjectOutStream.writeObject(foodType);
  
            // closing FileOutputStream and
            // ObjectOutputStream
            myObjectOutStream.close();
            myFileOutStream.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Producción

Serialize HashMap

En el ejemplo anterior, serializamos el HashMap de foodType utilizando el método writeObject(). 

Ejecute este programa y vea en su sistema de archivos que se crea un archivo llamado «newHashMap.txt» y se guarda todo el HashMap (en forma codificada). Ahora, aprenderemos cómo leer este archivo y deserializar HashMap.

Ejemplo 2: deserialización de HashMap de claves y valores de string

Es importante tener en cuenta que solo podemos almacenar el HashMap deserializado en la variable de referencia de HashMap o cualquiera de sus clases principales. Aparte de eso , se producirá la excepción java.lang.ClassCastException .

Java

// Deserializing HashMap in Java
  
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
  
public class HashMapExample2 {
    public static void main(String[] args)
    {
        HashMap<String, String> newHashMap = null;
  
        try {
            FileInputStream fileInput = new FileInputStream(
                "/Users/piyushkumar/Downloads/Java/newHashMap.txt");
  
            ObjectInputStream objectInput
                = new ObjectInputStream(fileInput);
  
            newHashMap = (HashMap)objectInput.readObject();
  
            objectInput.close();
            fileInput.close();
        }
  
        catch (IOException obj1) {
            obj1.printStackTrace();
            return;
        }
  
        catch (ClassNotFoundException obj2) {
            System.out.println("Class not found");
            obj2.printStackTrace();
            return;
        }
  
        System.out.println("Deserializing  HashMap..");
  
        // Displaying content in "newHashMap.txt" using
        // Iterator
        Set set = newHashMap.entrySet();
        Iterator iterator = set.iterator();
  
        while (iterator.hasNext()) {
            Map.Entry entry = (Map.Entry)iterator.next();
  
            System.out.print("key : " + entry.getKey()
                             + " & Value : ");
            System.out.println(entry.getValue());
        }
    }
}
}

Producción

Deserialize HashMap

Publicación traducida automáticamente

Artículo escrito por piyushkr2022 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 *