任意的文件操作都要用到多个流,在操作结束时是否每个都要关闭呢???有没有顺序要求?FileInputStream fis=new FileInputStream(fleLibary);
BufferedInputStream bis=new BufferedInputStream(fis);
DataInputStream dis=new DataInputStream(bis);
dis.close()
bis.close()
fis.close()

解决方案 »

  1.   

    按理说,应该是:“和栈的顺序一样,先开的后关,后开得先关”
    不过刚才测试了一下,先关那个都不会报错,我也有此疑问
    引用别人的一句话“Java是用来做开发的,不是用来研究完美理论的”,
    所以请允许java的一些“不合理/不完美之处”
      

  2.   

    这里有个问题,很多代码是这样写的DataInputStream dis=new DataInputStream(new BufferedInputStream(new FileInputStream(fleLibary)));在这种情况下不可能人工关闭全部流,所以我有疑问是否外层在close后会自动调用内部close
      

  3.   

    经过装饰的流,只关dis就行了
      

  4.   

    有顺序,有内到外,你上面写的就是对的,文件操作的大部分都要写到try{}catch(){}内,特别是关闭操作