为什么Java 8中的Stream类是AutoCloseable的?

16
在Java 8中,Stream类实现了AutoCloseable接口。这意味着流实例应该被显式关闭。
我理解为什么文件句柄和数据库连接是可关闭的。但是流为什么也一样呢?
1个回答

28

我认为当前的Stream文档/ javadoc 相当清晰:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接