很多类有close()方法,那是做什么的?
很多资料上说是释放资源,但是为什么释放了还可以访问呢?
代码如下:     ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
      DataOutputStream outStream = new DataOutputStream(byteArray);
      outStream.writeBoolean(true);
      outStream.writeInt(93);
      outStream.writeUTF("asdfg");
      outStream.close();
      byteArray.close();
      byte data[] = byteArray.toByteArray();  //data还是可以复值得呀

解决方案 »

  1.   

    释放掉后 原来的资源就消失了
    以前的应该变成null
    但是还可以继续付值的
      

  2.   

    向操作系统申请的资源用完后必须释放掉,还给操作系统,不然会导致其它程序无法访问这些资源。
    经常遇到的主要是 文件,数据库连接,Socket 这几类资源。
    关于ByteArrayOutputStream的javadoc的说明:
    Closing a ByteArrayOutputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.