Open In App

Reading Text File into Java HashMap

Improve
Improve
Like Article
Like
Save
Share
Report

We will look into the Method that allows us to read the HashMap Text from the file or how we can De-serialised the File

De-Serialization: Here we are reproducing the HashMap object and it’s content from a serialized file.

Approach:

Firstly the method/Function HashMapFromTextFile will have the Method bufferedReader which read the Line of the text File and insert into the map and then return the Map

bf = new BufferedWriter( new FileWriter(file_name) );
  • Firstly we call the BufferedReader to read each line.
  • At each Line, We have the Key-Value Pair. So, Now split it by “:” and same time put the key and Value to the map
  • and return the Map

Java




// Java program to reading
// text file to HashMap
  
import java.io.*;
import java.util.*;
  
class GFG {
    final static String filePath
        = "F:/Serialisation/write.txt";
    public static void main(String[] args)
    {
  
        // read text file to HashMap
        Map<String, String> mapFromFile
            = HashMapFromTextFile();
  
        // iterate over HashMap entries
        for (Map.Entry<String, String> entry :
             mapFromFile.entrySet()) {
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
  
    public static Map<String, String> HashMapFromTextFile()
    {
  
        Map<String, String> map
            = new HashMap<String, String>();
        BufferedReader br = null;
  
        try {
  
            // create file object
            File file = new File(filePath);
  
            // create BufferedReader object from the File
            br = new BufferedReader(new FileReader(file));
  
            String line = null;
  
            // read file line by line
            while ((line = br.readLine()) != null) {
  
                // split the line by :
                String[] parts = line.split(":");
  
                // first part is name, second is number
                String name = parts[0].trim();
                String number = parts[1].trim();
  
                // put name, number in HashMap if they are
                // not empty
                if (!name.equals("") && !number.equals(""))
                    map.put(name, number);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally {
  
            // Always close the BufferedReader
            if (br != null) {
                try {
                    br.close();
                }
                catch (Exception e) {
                };
            }
        }
  
        return map;
    }
}




Last Updated : 28 Dec, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads