IO流之节点流(字符流)和数据流关闭

​输入流----Reader

 1 public class Reader {
 2     public static void main(String[] args) throws Exception {
 3         //获取字符输入流的地址
 4         FileReader reader = new FileReader("D:\\reader.txt");
 5         //定义读取到的长度
 6         int len = 0;
 7         //一次读取到的数据长度
 8         char[] c = new char[4];
 9         //len=reader.read(c)从reader.read(c)读取到的长度
10         while ((len=reader.read(c))!=-1){
11             for (char i : c){
12                 System.out.println(i);
13             }
14         }
15     }
16 }

 

 由于数组一次读取四个,读取最后一次时字符数组内只有党更新了,国共产还是上一次的数据,最后一次理应只有党输出

解决上述问题

1         while ((len=reader.read(c))!=-1){
2             for (int i=0;i<len;i++){//i<len,len从reader.read(c)内读取的长度
3                 System.out.println(c[i]);
4             }
5         }

输出流----Writer

Writer-----不关闭,数据不出现

流的关闭

.flush()-----将最后一点数据放进文件()

.close()-----关闭流

输入输出流就像一个人瓶子通过吸管向另一个瓶子滴水,当第一个瓶子里的水滴完后,水并不能完全到另一个瓶子里,吸管里还有一些水,此时就需要通过.flush()将吸管里的水全部赶到杯子里,然后通过.close()关闭流

 

程序中打开的文件IO流资源不属于内存中的资源,垃圾回收机制无法回收,需要手动关闭

posted @ 2021-07-24 20:57  你就叫酱油  阅读(194)  评论(0编辑  收藏  举报