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);
}
}
|
|