15

在 Java 8 中,Stream 类实现了 AutoCloseable。这意味着应该明确关闭流实例。

我理解为什么文件处理程序和数据库连接是可关闭的。但为什么是流?

4

1 回答 1

26

我认为 Stream 的当前文档/javadoc非常清楚:

流有一个 BaseStream.close() 方法并实现 AutoCloseable,但几乎所有流实例在使用后实际上都不需要关闭。通常,只有源为 IO 通道的流(例如由 Files.lines(Path, Charset) 返回的流)才需要关闭。大多数流由集合、数组或生成函数支持,不需要特殊的资源管理。(如果流确实需要关闭,可以在 try-with-resources 语句中将其声明为资源。)

于 2014-03-02T07:55:59.760 回答