我有一个 OutputStream
列表需要处理,而且我知道当我只需要一个时,我可以确保它使用 try-with-resources
模式关闭,例如:
try(OutputStream os = new ByteArrayOutputStream()) {
do something...
} catch (IOException e) {
do something...
}
但是如果有它们的列表怎么办?我可以将列表( ArrayList
或普通数组)放在 try
之后的括号中吗?
最佳答案
您可以使用foreach
(或标准for
)来实现此目的。
OutputStream[] streams = {...};
for (OutputStream stream : streams) {
try (OutputStream os = stream) {}
catch (IOException e) {}
}
您不能“将 ArrayList
或普通数组放在 try
之后的括号中”,因为它只能与实现该接口(interface)的对象一起使用java.lang.AutoCloseable
.
关于java - Java中如何关闭OutputStream列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324370/