本帖最后由 496080891 于 2014-6-27 14:59 编辑
- public class Test6 {
- /**
- * 6、 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,
- * 例如:
- * a: 21 次
- * b: 15 次
- * c:: 15 次
- * 把: 7 次
- * 当: 9 次
- * 前: 3 次
- * ,:30 次
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- File file1 = new File("D:\\eclipse\\exam\\src\\com\\itheima\\Test6.java");//关联当前文件
- File file2 = new File("D:\\eclipse\\exam\\src\\com\\itheima\\Test6.txt");//关联目标文件
- BufferedReader in =
- new BufferedReader(new FileReader(file1));//输入流
- BufferedWriter out =
- new BufferedWriter(new FileWriter(file2));//输出流
- String len = null;
- StringBuffer sb = new StringBuffer();
- while ((len=in.readLine())!=null){
- sb.append(len);
- out.write(len);
- out.newLine();
- out.flush();
- }
- Map map = countChar(sb.toString());//创建Map集合
- Set set = map.entrySet();
- Iterator it = set.iterator();
- while(it.hasNext()){//循环写入Key和Value的值
- Entry<Character,Integer> entry = (Entry<Character, Integer>) it.next();
- //System.out.println(entry.getKey()+":"+entry.getValue()+"次");
- out.write(entry.getKey()+":"+entry.getValue()+"次");
- out.newLine();
- out.flush();
- }
- in.close();
- out.close();
- }
- //统计字符出现次数;
- public static Map<Character,Integer> countChar(String str){
- Map<Character,Integer> map = new HashMap<Character,Integer>();
- char[] chars = new char[str.length()];
- str.getChars(0, str.length(), chars, 0);
- for(char c : chars){
- Integer count = map.get(c);
- if(count == null)
- map.put(c, 1);
- else
- map.put(c, ++count);
- }
- return map;
- }
- }
复制代码 |