1 package com.util; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.InputStreamReader; 7 import java.util.*; 8 9 /** 10 * Created by jinxin11 on 2017/2/6. 11 */ 12 public class WordCount { 13 14 //排序方法 15 public static <K, V extends Comparable<V>> TreeMap<K, V> sortByValues( 16 final Map<K, V> map) { 17 Comparator<K> valueComparator = new Comparator<K>() { 18 public int compare(K k1, K k2) { 19 int compare = map.get(k2).compareTo(map.get(k1)); 20 if (compare == 0) 21 return 1; 22 else 23 return compare; 24 } 25 }; 26 TreeMap<K, V> sortedByValues = new TreeMap<K, V>(valueComparator); 27 sortedByValues.putAll(map); 28 return sortedByValues; 29 } 30 31 public static void main(String[] args) { 32 try { 33 Map<String,Integer> map = new HashMap(); 34 //读取文件 35 File file = new File("C:\Users\jinxin11\Desktop\wordcount.txt"); 36 if (file.isFile() && file.exists()) { 37 InputStreamReader read = new InputStreamReader(new FileInputStream(file)); 38 BufferedReader bufferedReader = new BufferedReader(read); 39 String lineTXT = null; 40 while ((lineTXT = bufferedReader.readLine()) != null) { 41 //以空格切割每行数据 42 String[] lines = lineTXT.split(" "); 43 //将单词和单词计数放入map 44 for (String str : lines) { 45 if (map.containsKey(str)) { 46 map.put(str, map.get(str) + 1); 47 } else { 48 map.put(str, 1); 49 } 50 } 51 } 52 read.close(); 53 //对map进行排序 54 TreeMap<String, Integer> treeMap = sortByValues(map); 55 System.out.println(treeMap); 56 System.out.println(treeMap.firstKey()); 57 }else{ 58 System.out.println("找不到指定的文件!"); 59 } 60 } catch (Exception e) { 61 System.out.println("读取文件内容操作出错"); 62 e.printStackTrace(); 63 } 64 } 65 }