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 }

 

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

解决上述问题spa

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-----不关闭,数据不出现code

流的关闭

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

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

输入输出流就像一我的瓶子经过吸管向另外一个瓶子滴水,当第一个瓶子里的水滴完后,水并不能彻底到另外一个瓶子里,吸管里还有一些水,此时就须要经过.flush()将吸管里的水所有赶到杯子里,而后经过.close()关闭流资源

 

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

相关文章
相关标签/搜索