我感觉好象不用你再来关闭InputStream,系统在发现有异常产生后,应该是自动关闭它的,要不让程序员这样处理,Sun公司做的岂不是太烂了.

解决方案 »

  1.   

    那正常执行的程序,是不是就需要我自己来关闭了?
    那java的垃圾处理机是干什么的,是不是他应该把不用的对象都清空,包括对不用的io流自动关闭?
      

  2.   

    你的第一个catch语句大可输出一个读数据错误提示就不管了。
      

  3.   

    boolean b=true;InputStream in=new InputStream();try{in.read();}catch(IOException ioe){
      .... //print error or sth. else
    }
    finally
    {
     try { in.close(); } catch(IOException e) {}
    }
      

  4.   

    没问题,只要没有人引用这个stream对象它就能被垃圾收集,对象本身不是问题,关键是对象中占用的系统资源需要释放。垃圾收集还是要知道的,很重要。
      

  5.   

    在一个线程里这个流要是发生了异常,但是在另一个线程里这个流还在被使用,那么这个情况如何处理呢?是java自动处理,还是人为进行处理?所以我一直想知道
    这个流发生异常后,是不是关闭了,其他线程还可不可以使用他?