import java.io.PrintStream; import java.util.Scanner; import java.io.File; import java.util.Map; import java.util.HashMap; import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; public class WordCount { public static void main(String[] args) throws Exception { PrintStream output = System.out; Scanner input = new Scanner(System.in); output.print("Provide file name: "); Scanner fileInput = new Scanner(new File(input.nextLine())); Map counts = new HashMap(); while (fileInput.hasNext()) { String word = fileInput.next(); Integer count = counts.get(word); if (count == null) { counts.put(word, 1); } else { counts.put(word, count + 1); } } List words = new ArrayList(counts.keySet()); Collections.sort(words); Iterator iterator = words.iterator(); while (iterator.hasNext()) { String word = iterator.next(); output.println(word + "\t" + counts.get(word)); } } }