Nếu chúng tôi sử dụng Java 8 Stream như list.stream().filter(....).collect(..).....
Khi nào nó đóng luồng này?Đóng Java 8 Stream
Thực tiễn tốt là chúng tôi đóng luồng chúng tôi làm ví dụ tiếp theo?
Stream<String> stream = list.stream();
String result = stream.limit(10).collect(Collectors.joining(""));
stream.close();
Từ tài liệu: Luồng có phương thức BaseStream.close() và triển khai AutoCloseable, nhưng gần như tất cả các phiên bản luồng không thực sự cần đóng sau khi sử dụng. Nói chung, chỉ các luồng có nguồn là kênh IO (chẳng hạn như các luồng được Files.lines trả về (Đường dẫn, Bộ ký tự)) sẽ yêu cầu đóng. Hầu hết các luồng được hỗ trợ bởi các bộ sưu tập, mảng hoặc các hàm tạo, không yêu cầu quản lý tài nguyên đặc biệt. (Nếu một luồng yêu cầu đóng, nó có thể được khai báo như là một nguồn lực trong một tuyên bố try-with-resources.) – Matt
Tôi không nghĩ rằng bạn cần phải đóng "dòng" đó ^) – injecteer
Các luồng nói chung không cần phải đã đóng cửa. Chỉ một số luồng truy cập các resouces như là 'DirectoryStream' cần được đóng lại. Cách tốt nhất để làm điều đó là sử dụng câu lệnh [try-with-resources] (https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html). – Jesper