【发布时间】:2014-01-16 15:38:29
【问题描述】:
关于stackoverflow的第一个问题,我退出了;)
使用流链时,最好只关闭链中的最后一个流,因为 close() 操作应该传播到链的所有流。
将 try-with-ressource 语句和流链接结合起来的最佳做法是什么?
a) 在 try 语句中创建所有流:
try (InputStream processIn = p.getInputStream();
InputStreamReader inReader = new InputStreamReader(processIn);
BufferedReader input = new BufferedReader(inReader)) {
.
.
}
或者 b) 只是链的最后一个成员:
InputStream processIn = p.getInputStream();
InputStreamReader inReader = new InputStreamReader(processIn);
try (BufferedReader input = new BufferedReader(inReader)) {
.
.
}
我猜这两个版本最终都会工作,但我假设 a) 会产生重复的 close() 调用,不是吗?
【问题讨论】:
标签: stream chain try-with-resources