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
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
Publicación traducida automáticamente
Artículo escrito por piyushkr2022 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA