如果
FileInputStream fileIS = new FileInputStream(filePathStr);
DataInputStream dataIS = new DataInputStream(fileIS);
Run Code Online (Sandbox Code Playgroud)
关闭fileIS会自动关闭dataIS,因为dataIS是传播fileIS还是dataIS也应该单独关闭?
谢谢
如果给出选择,你应该只关闭DataInputStream.更一般地,始终关闭最外层的包装流.结束将向内传播,这是通常确保正确行为的唯一方法.
但是,如果关闭底层FileInputStream,那也就足够了,因为DataInputStream它本身不会获取任何系统资源.
对您的问题的最直接的答案:不,关闭底层流不会关闭包装器流,但实际上从系统资源泄漏的角度来看这是无关紧要的.只有底部的流耦合到实际的系统资源.
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |