io流输出文件
计算在文章中的最多的单词(《飘》)
package piao; import java.io.*; import java.util.*; import java.util.Map.Entry; public class W2 { public static int n=0; public static void main(String[] args) { Scanner input=new Scanner(System.in); String s; String fileName1 = "src/《飘》英文版.txt"; String fileName2 = "src/fenxijiegou.txt"; try { BufferedReader br = new BufferedReader(new FileReader(fileName1)); BufferedWriter bw = new BufferedWriter(new FileWriter(fileName2)); StringBuffer sb = new StringBuffer(); //将文件内容存入StringBuffer中 while((s = br.readLine()) != null) { sb.append(s); } String str = sb.toString().toLowerCase(); //分隔字符串并存入数组 String[] elements = str.split("[^a-zA-Z0-9]+"); int count = 0; Map<String, Integer> myTreeMap = new TreeMap<String, Integer>(); //遍历数组将其存入Map<String, Integer>中 for(int i = 0; i < elements.length; i++) { if(myTreeMap.containsKey(elements[i])) { count = myTreeMap.get(elements[i]); myTreeMap.put(elements[i], count + 1); } else { myTreeMap.put(elements[i], 1); } } System.out.println("单词统计的结果请见当前目录fenxijiegou.txt文件"); //将map.entrySet()转换成list List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(myTreeMap.entrySet()); //通过比较器实现排序 Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { //降序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); int num = 1; //将结果写入文件 for(Map.Entry<String, Integer> map : list) { if(num <= 10) { bw.write("出现次数第" + num + "的单词为:" + map.getKey() + ",出现频率为" + map.getValue() + "次"); bw.newLine(); System.out.println(map.getKey() + ":" + map.getValue()); num++; } else break; } br.close(); bw.close(); } catch (FileNotFoundException e) { System.out.println("找不到指定文件!"); } catch (IOException e) { System.out.println("文件读取错误!"); } } }