很多类有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还是可以复值得呀
很多资料上说是释放资源,但是为什么释放了还可以访问呢?
代码如下: 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还是可以复值得呀
以前的应该变成null
但是还可以继续付值的
经常遇到的主要是 文件,数据库连接,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.