簡體   English   中英

在Java 8 Stream API中,DirectoryStream有什么區別 <Path> 和流 <Path> ?

[英]In Java 8 Stream API, what's the difference between a DirectoryStream<Path> and Stream<Path>?

我想返回路徑流(這些文件位於某個目錄中)。 我最初的方法是這樣的:

DirectoryStream getFiles(Path dir) throws IOException {
    Files.newDirectoryStream(dir);
}

...但是,我想知道以上代碼段與第二個代碼段之間的區別:

Stream<Path> getFiles(Path dir) throws IOException {
    Spliterator<Path> spl = Files.newDirectoryStream(dir).spliterator();
    return StreamSupport.stream(spl, false);
}

DirectoryStreamStream都是AutoCloseable子接口,但除此之外,它們似乎是為不同的目的而設計的。

更確切地說,我的問題是:

Java-8中DirectoryStreamStream接口之間在概念和基於功能上的區別是什么?

Java-8中DirectoryStream和Stream接口之間在概念和基於功能上的區別是什么?

Java Stream API是設計和實現的通用API,可為任何對象流提供不可變的,惰性的,功能性/聲明性的編碼樣式。 這不是特定於一個范圍的,它具有過濾,轉換和聚合來自流的數據的機制。

其中,DirectoryStream是專門設計用於在易於使用的API中滿足文件系統目錄的加載,過濾和迭代的功能。

Java Stream API具有明確的常用功能和相應的SAM(單一抽象方法)接口,可簡化幾乎所有用例的編碼。

由於DirectoryStream具有便捷的功能和接口,因此可以輕松進行目錄的加載,篩選和迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM