Open In App

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

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 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:


Article Tags :