【问题标题】:Is there anyway to use the inputStream after it closed in java?在 java 中关闭后是否仍然可以使用 inputStream?
【发布时间】:2022-11-21 21:51:40
【问题描述】:

需要在各种方法中使用文件的 inputStream,但我在 try-with-resources 中使用了 inputStream,因此导致 stream is closed 错误。在 java 中关闭后,是否仍然可以将 inputStream 用于另一种方法?

【问题讨论】:

  • 不可以,您无法在关闭后重新打开流。目前尚不清楚您为什么或如何尝试重用 InputStream,因此很难就如何共享 InputStream 提出策略建议。

标签: java arrays io java-stream inputstream


【解决方案1】:

InputStream在Java中关闭后就没法使用了,这就是关闭的目的。 如果你想在你的try{}块之外保留一个可用的InputStream,你不应该使用try-with-resources方法,而只是在catch块中关闭它。 但是你需要考虑如果你在 try 块之外遇到异常会发生什么。

如果同一资源必须由多个方法使用,并且您想确保在遇到任何类型的错误时关闭它,您应该有一个 try{} 块来封装所有跟随并关闭资源的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 2018-11-20
    • 2015-11-08
    • 2021-02-10
    • 1970-01-01
    • 2012-01-28
    • 2018-08-05
    • 2013-05-29
    相关资源
    最近更新 更多