我想返回路径流(这些文件位于某个目录中)。我最初的方法是这样的:
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);
}
DirectoryStream
和Stream
都是AutoCloseable
的子接口,但除此之外,它们似乎是为不同目的而设计的。更确切地说,我的问题是:
Java-8中
DirectoryStream
和Stream
接口之间在概念和基于功能上的区别是什么? 最佳答案
之间的概念和基于功能的区别是什么
Java-8中的DirectoryStream和Stream接口?
Java Stream API是设计和实现的通用API,可为任何对象流提供不可变的,惰性的,功能性/声明性的编码样式。这不是特定于一个范围的,它具有过滤,转换和聚合来自流的数据的机制。
其中,DirectoryStream是专门设计用于在易于使用的API中满足文件系统目录的加载,筛选和迭代的功能。
Java Stream API具有明确的常用功能和相应的SAM(单一抽象方法)接口,可简化几乎所有用例的编码。
DirectoryStream具有方便的功能和接口,可轻松执行目录的加载,筛选和迭代。