java资源关闭的问题
装饰者模式
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
是否2个Reader的close()都要调用?
like:
try {
isr.close();
br.close();
}
如果2个都要调用,假设2个都可能会抛出
IOException,放在一个try块里面是不是不妥?
------解决方案--------------------
br.close();
只需要这个调用就可以了。
可以进源码里面看,这个close方法里面会调用isr.close()的。
------解决方案--------------------
像这样一层套一层的情况,一般只要关闭最外层的就可以了