![](/img/trans.png)
[英]What is the difference between DirectoryStream and DirectoryStream.filter in java 7?
[英]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);
}
DirectoryStream
和Stream
都是AutoCloseable
子接口,但除此之外,它们似乎是为不同的目的而设计的。
更确切地说,我的问题是:
Java-8中DirectoryStream
和Stream
接口之间在概念和基于功能上的区别是什么?
Java-8中DirectoryStream和Stream接口之间在概念和基于功能上的区别是什么?
Java Stream API是设计和实现的通用API,可为任何对象流提供不可变的,惰性的,功能性/声明性的编码样式。 这不是特定于一个范围的,它具有过滤,转换和聚合来自流的数据的机制。
其中,DirectoryStream是专门设计用于在易于使用的API中满足文件系统目录的加载,过滤和迭代的功能。
Java Stream API具有明确的常用功能和相应的SAM(单一抽象方法)接口,可简化几乎所有用例的编码。
由于DirectoryStream具有便捷的功能和接口,因此可以轻松进行目录的加载,筛选和迭代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.