Welcome to my blog, hope you enjoy reading
RSS

Monday 18 February 2013

Write a program to find maximum repeated words from a file.


Write a program to find maximum repeated words from a file.



package com.javanotes2all.java.files; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; import java.util.Map.Entry; public class WordsCountInFile { public Map<String, Integer> getWordCount(String fileName){ FileInputStream fis = null; DataInputStream dis = null; BufferedReader br = null; Map<String, Integer> wordMap = new HashMap<String, Integer>(); try { fis = new FileInputStream(fileName); dis = new DataInputStream(fis); br = new BufferedReader(new InputStreamReader(dis)); String line = null; while((line = br.readLine()) != null){ StringTokenizer st = new StringTokenizer(line, " "); while(st.hasMoreTokens()){ String tmp = st.nextToken().toLowerCase(); if(wordMap.containsKey(tmp)){ wordMap.put(tmp, wordMap.get(tmp)+1); } else { wordMap.put(tmp, 1); } } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try{if(br != null) br.close();}catch(Exception ex){} } return wordMap; } public List<Entry<String, Integer>> sortByValue(Map<String, Integer> wordMap){ Set<Entry<String, Integer>> set = wordMap.entrySet(); List<Entry<String, Integer>> list = new ArrayList<Entry<String,Integer>>(set); Collections.sort( list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String,Integer> o1,Map.Entry<String,Integer> o2 ) { return (o2.getValue()).compareTo( o1.getValue() ); }
} ); return list; } public static void main(String a[]){ WordsCountInFile mdc = new WordsCountInFile(); Map<String, Integer> wordMap = mdc.getWordCount("/home/prabhu/test.txt"); List<Entry<String, Integer>> list = mdc.sortByValue(wordMap); for(Map.Entry<String, Integer> entry:list){ System.out.println(entry.getKey()+" ==== "+entry.getValue()); } } }

OUTPUT:

java ==== 2
is ==== 1
for ==== 1
javanotes2all ==== 1
the ==== 1
notes ==== 1
blog ==== 1
developers ==== 1
all ==== 1

0 comments: