84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
认证0级讲师
直接调用最外层的close()就可以了
update:
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
Closes the stream and releases any system resources associated with it
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
就是一个链条 你关闭最外面的 最外面的关闭里面的 里面的关闭更里面的
当然你如果硬要说关闭可能失败 一定要finally一下我也没办法
如果这个问题是:BufferedReader关闭了,有必要关闭InputStreamReader和InputStream吗?,那这个问题还正常些........
Java的io包里面的stream和reader,都用的是装饰者模式。你只需要调用最外层装饰者的close方法,它就能将其所装饰的stream或者reader也一并关闭。
实在不行,打开BufferedReader的源代码看看close方法,就会发现它再这个方法里关闭了它所装饰的reader.
BufferedReader
再实在不行,推荐在下的拙作一篇,也许能解决你的疑惑《Java IO : 流,以及装饰器模式在其上的运用》
都要关的,按顺序一个个关,最好在finally中
finally{ try{ br.close(); isr.close(); is.close(); }catch(Exception e){ ...... } }
最先创建的最后关,最后创建的最先关
直接调用最外层的close()就可以了
update:
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
就是一个链条 你关闭最外面的 最外面的关闭里面的 里面的关闭更里面的
当然你如果硬要说关闭可能失败 一定要finally一下我也没办法
如果这个问题是:BufferedReader关闭了,有必要关闭InputStreamReader和InputStream吗?,那这个问题还正常些........
Java的io包里面的stream和reader,都用的是装饰者模式。你只需要调用最外层装饰者的close方法,它就能将其所装饰的stream或者reader也一并关闭。
实在不行,打开
BufferedReader
的源代码看看close方法,就会发现它再这个方法里关闭了它所装饰的reader.再实在不行,推荐在下的拙作一篇,也许能解决你的疑惑《Java IO : 流,以及装饰器模式在其上的运用》
都要关的,按顺序一个个关,最好在finally中
最先创建的最后关,最后创建的最先关