把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
a: 21 次
b: 15 次
c: 15 次
把: 7 次
当: 9 次
前: 3 次
,:30 次
- public static void main(String[] args) throws Exception{
- // TODO Auto-generated method stub
-
- BufferedReader bufr = new BufferedReader(new FileReader("d:\\a.txt"));
- BufferedWriter bufw = new BufferedWriter(new FileWriter("d:\\new.txt"));
-
- TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
- String line = null;
- while((line= bufr.readLine())!=null)
- {
- //这部分代码是拷贝文件
- bufw.write(line);
- bufw.newLine();
- bufw.flush();
- //以下是统计每个出现的字符数
- char[] arr = line.toCharArray();
- int i=0;
- while(i<arr.length)
- {
- if(!tm.containsKey(arr[i]))//判断是否包含该字符
- tm.put(arr[i],1); //不存在,则置1
- else
- { //存在则取出统计的数,并操作
- int count = tm.get(arr[i]);
- count++;
- tm.put(arr[i],count);//这点注意直接覆盖了,因为值是相同的
- }
- i++;
- }
-
- }
-
- BufferedWriter bufwr = new BufferedWriter(new OutputStreamWriter(System.out));
- Set<Map.Entry<Character, Integer>> entrySet = tm.entrySet();
- Iterator<Map.Entry<Character, Integer>> it = entrySet.iterator();
- while(it.hasNext())
- {
- Map.Entry<Character, Integer> me = it.next();
- char key = me.getKey();
- int num = me.getValue();
- bufwr.write(key+":"+num+"次");
- bufwr.newLine();
- bufwr.flush();
-
- }
- }
复制代码
|
|