在 java 中关闭 inputStream 后,是否可以使用它?

Is there anyway to use the inputStream after it closed in java?

提问人:Thalaimalai Pandiyan T 提问时间:11/21/2022 更新时间:11/21/2022 访问量:50

问:

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

Java 数组 IO java-stream 输入流

评论

1赞 vsfDawg 11/21/2022
不可以,在关闭流后无法重新打开流。目前尚不清楚您为什么或如何尝试重用 InputStream,因此很难就如何共享 InputStream 提出策略。
0赞 g00se 11/21/2022
您可以重新读取输入流,但不能在关闭后重新读取

答:

3赞 Fogux 11/21/2022 #1

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

如果同一资源必须由多个方法使用,并且您希望确保在遇到任何类型的错误时将其关闭,则应该有一个块来封装所有遵循和关闭资源的方法。try{}