Write HashMap to a Text File in Java

The HashMap class in Java implements the Serializable interface so that its objects can be written or serialized to a file using the ObjectOutputStream. However, the output file it produces is not in the human-readable format and may contain junk characters.
Serialization: It is a process of writing an Object into a file along with its attributes and content. It internally converts the object into a stream of bytes.
De-Serialization: It is a process of reading the Object and its properties from a file along with the Object’s content.
If we want to write a HashMap object to a plain text file, we need a simple and understandable code to write on the HashMap and then insert the Map into the Text File. We can write the code in the form of key-Value Pair of a map Object to a File and each line File will contain the Key-Value Pair
Approach
- In the below class we are storing the HashMap content in a hashmap.ser serialized file.
- Once when we run the below code it would produce a hashmap.ser file. This file would be used in the next class for de-serialization.
- The hashmap.ser serialised file can be Stored to any Location with describing it’s Location Like Below
- So we need the Location to write the HashMap in it.
- So for that need to Provide the External Location to Store the HashMap
final static String outputFilePath = "F:/Serialisation/write.txt";
Create the HashMap of String Key and String Value Pair
HashMap<String, String> map = new HashMap<String, String>();
Create the File Object:
File file = new File(outputFilePath);
Using the file object we will write the HashMap input using the function BufferedWriter(File_Path)
bf = new BufferedWriter( new FileWriter(file));
and then at last close the File
bf.close();
Writing to File
Java
// Java program to write HashMap to a file import java.io.*;import java.util.*; class GFG { final static String outputFilePath = "F:/Serialisation/write.txt"; public static void main(String[] args) { // create new HashMap HashMap<String, String> map = new HashMap<String, String>(); // key-value pairs map.put("rohit", "one"); map.put("Sam", "two"); map.put("jainie", "three"); // new file object File file = new File(outputFilePath); BufferedWriter bf = null; try { // create new BufferedWriter for the output file bf = new BufferedWriter(new FileWriter(file)); // iterate map entries for (Map.Entry<String, String> entry : map.entrySet()) { // put key and value separated by a colon bf.write(entry.getKey() + ":" + entry.getValue()); // new line bf.newLine(); } bf.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { // always close the writer bf.close(); } catch (Exception e) { } } }} |
Output:




