要求: 获取文本上字符出现的次数,把数据写入文本wordCount.txt
思路:
1.遍历文本每一个字符,所以此时节点流和缓冲流在读取时效率一样,所以可以使用字符流FileReader进行读取。
2.字符出现的次数存在Map中 ,key用来存放字符,value存放对应字符出现的次数。
只要不显式的在内存中读取就不会乱码。详细原因见文章:java-IO 流 中标题为 视频(mp4)复制Demo: 的注意内容。
Map<Character,Integer> map = new HashMap<Character,Integer>();
map.put('a',18);
map.put('你',2);
3.把Map中的数据写入文件:
3.1将存入map中的数据进行遍历,文章中用的是迭代器,每次获取到一个entry,就可以调用entry.getKey() / entry.getValue() 进行获取数据,然后写入wordCount.txt文件中。
3.2写入:由于是一行一行写入的,所以包含多个字符。又由于读取时用的是单字符读取的字符流,单字符写入实在是太慢了,所以在写入时,采用效率更高的缓冲流BufferedWriter,默认的缓冲区是8192个字符,也就是说达到8192个字符后,才进行一次写出。