才看到基础视频IO部分后面有讲到操作数组的类,ByteArrayOutputStream,封装了数组,可以将数组中的数据缓冲,循环结束后再将缓冲区数据一次性输出到控制台。因为操作内存中的数据,没调用系统底层资源,所以close方法不起作用。
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.Map;
- import java.util.TreeMap;
- /*
- * 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出
- *
- * 思路:就是把这个文件的文本复制到一个txt文件中(鼠标操作),读取文本并统计字符出现的次数
- */
- public class Test13 {
- public static void main(String[] args) throws IOException {
- // TODO Auto-generated method stub
- FileReader fr = new FileReader("e:\\file.txt");
- Map<Character,Integer> treeMap = new TreeMap<Character,Integer>();
-
- int ch = fr.read();
- while(ch!=-1){
- Character character = (char)ch;
- Integer value = treeMap.get(character);
- if(!treeMap.containsKey(character))
- treeMap.put(character, 1);
- treeMap.put(character, value+1);
- }
- for(Map.Entry<Character, Integer> me : treeMap.entrySet()){
- System.out.println(me.getKey()+":"+me.getValue()+"次");
- }
-
- }
- }
复制代码 |