12
如果我們使用Java 8 Stream類似list.stream().filter(....).collect(..).....
什麼時候關閉了這個流?關閉Java 8 Stream
是不是很好的做法,我們關閉了作爲下一個例子的流?
Stream<String> stream = list.stream();
String result = stream.limit(10).collect(Collectors.joining(""));
stream.close();
從文檔:Streams有一個BaseStream.close()方法並實現AutoCloseable,但幾乎所有的流實例實際上並不需要在使用後關閉。通常,只有源數據流是IO通道的數據流(如Files.lines(Path,Charset)返回的數據流)需要關閉。大多數流由集合,數組或生成函數支持,不需要特殊的資源管理。 (如果一個流確實需要關閉,它可以在try-with-resources語句中聲明爲資源。) – Matt
我不認爲你需要關閉那個「流」^) – injecteer
流一般不需要是關閉。只有一些訪問諸如「DirectoryStream」之類資源的流需要關閉。最好的方法是使用[try-with-resources](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)語句。 – Jesper