无论如何,有没有检查OutputStream是否关闭而不尝试写入它并捕获IOException

例如,考虑以下人为方法:

public boolean isStreamClosed(OutputStream out){
    if( /* stream isn't closed */){
        return true;
    }else{
        return false;
    }
}

您可以用什么替换/* stream isn't closed */

最佳答案

在您尝试对其进行写入之前,基础流可能不知道其关闭(例如,如果套接字的另一端将其关闭)

最简单的方法是使用它并处理如果关闭则发生的情况,而不是先进行测试。

无论您进行什么测试,总是有机会获得IOException,因此您无法避免异常处理代码。添加此测试可能会使代码复杂化。

10-05 22:53
查看更多