java - Java中如何关闭OutputStream列表?

标签 java outputstream try-with-resources

我有一个 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/

相关文章:

java - 如何从设备文件夹中检索和共享位图

java - 如果里面 while

java - 如何为android项目生成不同分辨率的图像?

java - 更改 SonarQube.com 上的质量配置文件

java - 如何一次向 Telnet OutputStream 写入一个字符?

java - 使用 "try with resources"创建没有任何引用的资源

java - 为什么在使用 try-with-resources 时在 try() 中声明 Resource

java - vlcj 媒体播放器 : how to detect when video has finished playing

java - 如何在Java中使用两个条件(大于和小于)来终止for循环?

java - 如何修复此 Try-With-Resources block 中出现的 "SQLServerException: The connection is closed."问题?