比如有InputStream in=new FileInputStream("...");
BufferedReader br=new BufferedReader(new InputStreamReader(in));...
根据我的尝试in.close()后br.read();会有异常。
br.close();后in.read();也有同一种异常。
那是不是在关闭流时只要随便关一个就行了,还是另有资源释放问题。

解决方案 »

  1.   

    是的.
    BufferedReader br=new BufferedReader(new FileReader("..."));
      

  2.   

    br和in都引用同一内存,所以只关一个就可以了,对于不是同一引用的要都关闭。
    一般先关高层流再关低层流。
      

  3.   

    我看大多数的程序
    InputStream in=new FileInputStream("...");
    BufferedReader br=new BufferedReader(new InputStreamReader(in));...
    是关闭br.close();
    好象书上讲的很少.
      

  4.   

    [引用CODE]
    InputStream in=new FileInputStream("...");
    BufferedReader br=new BufferedReader(new InputStreamReader(in));...br.close();就行了
    当br关闭的时候in也就关闭了。如果你用InputStream再用BufferedReader,或者再嵌套了其它inputStream(他们的关系必须连接起来)
    只要关闭最后一个就OK了。