A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-3-30 17:41  /  1782 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Demo1 {
        public static void main(String[] args) throws IOException  {
        FileReader fr= new FileReader("Demo1.txt");
        int ch=fr.read();
        System.out.println((char)ch);
        int ch1=fr.read();
        System.out.println((char)ch1);
        int ch2=fr.read();
        System.out.println((char)ch2);
        //fr.close();                                  流到底要不要关闭,我测试了一下,我不关闭他也可以运行,为什么还要关闭.

5 个回复

正序浏览

没有关闭简单来说的后果就是:该资源还是被占用着,没有释放,如果再来一个请求,
就会抛出RuntimeExcetion.
回复 使用道具 举报
关闭不关闭 对运行没什么影响
只是关了  此流  你确定以后再也不用 它了 就关了

有时候还要继续操作的话就不关
不过一般习惯了 都是关了  
回复 使用道具 举报
能运行。但是也一定要有关闭动作。不仅如此,IO流处理异常的时候尽量用try/catch环绕,并把流关闭的动作放在catch后的finally块中,以确保一定能执行到!另外,如果流对象创建失败,关闭是无效的,运行时会产生RuntimeExcption 空指针异常NullPointerException,因此,可加入健壮性判断。
如:     if  (fr!=null);
               fr.close();
回复 使用道具 举报
如果没有关闭流,会导致你的操作系统出现内存泄露,影响操作系统的性能,这是程序的一个bug。
而关闭输入流则会释放与该流关联的所有系统资源。
回复 使用道具 举报
关闭流是为了释放资源,运行是没问题的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马