A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Set;
import java.util.TreeMap;

public class IODemo1 {
/**
* 需求: 读取一个本地文本文件 统计文本文件中每个字符出现的次数
* */
        public static void main(String[] args) throws IOException {
                /**
                 * 第一步:首先导入要操作的文件,导入File对象目的是为了获取到要操作文件的具体大小 将其装入数组中
                 * */
                FileReader fr=new FileReader("D:\\ZongHeDemo.java");
                File f=new File("D:\\ZongHeDemo.java");
                char[] chs=new char[(int)f.length()];//定一个存储和对象大小一样的数组
               
                /**
                 * 第二步:建立一个Map集合 用来装字符数据和统计次数
                 * */
                TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();               
               
                /**
                 * 第三步:通过循环将数组中的元素存入到集合中
                 * 在这里如果不加while循环的话 打印出来的仅仅是数组的容器大小
                 * */
               
                while(fr.read(chs)!=-1){
                        for(char key:chs){
                                Integer val=tm.get(key);
                                if(val==null){
                                        tm.put(key,1);
                                }else{
                                        val++;
                                        tm.put(key, val);
                                }
                        }
                }
               
                /**
                 *第四步:new一个字符串容器将打印格式排出来
                 * */
               
                StringBuilder sb=new StringBuilder();
                Set<Character>keys=tm.keySet();
                for(char key:keys){
                        Integer val=tm.get(key);
                        sb.append(key).append("出现次数:").append(val+"次  ");
                }
                System.out.print(sb);

        }

}

1 个回复

正序浏览
写的挺好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马