Giriş
Stream kapatılınca onClose() çağrılır.
Örnek - flatMap
Stream'i kapatan bazı metodlar var. Mesela flatMap. Şöyle yaparız. Dosya işlenince silinir.
Şöyle yaparız.
Açıklaması şöyle.Each mapped stream is closed after its contents have been placed into this stream.
Close handlers are run when the close() method is called on the stream, and are executed in the order they were added.
Bu metod özellikle Stream tarafından kullanılan sarmalanan ve kapatılması gereken Stream, File vs gibi şeyleri kapatmak için kullanılır
Stream'i kapatan bazı metodlar var. Mesela flatMap. Şöyle yaparız. Dosya işlenince silinir.
Stream.generate(...).takeWhile(Objects::nonNull)
.flatMap(file -> {
Path p = file.toPath();
return Files.lines(p, Charset.defaultCharset()).onClose(() -> ...);
})
.forEach(System.out::println);
Örnek - flatMapŞöyle yaparız.
// example stream
Stream<String> original=Stream.of("bla").onClose(()->System.out.println("close action"));
// this is the trick
Stream<String> autoClosed=Stream.of(original).flatMap(Function.identity());
Hiç yorum yok:
Yorum Gönder