Seb*_*n S 7 java nio java-8 java-stream
我知道Files.list(路径)使用Files.newDirectoryStream(路径)内部,基本上只是包装的DirectoryStream.
但是,当我想使用第一个或后一个时,我不明白.
如果我想使用流API,这只是一种方便的方法吗?我自己可以做到这一点相当容易,看到这个问题.
如果查看实现Files.list,则包含内部DirectoryStream抛出的异常UncheckedIOException.我应该知道的任何事情吗?
Tag*_*eev 16
这通常是一种风格问题.如果要使用外部迭代(for(Path path : dirStream))使用newDirectoryStream.如果你想利用流API操作(如优势map,filter,sorted,等),使用list来代替.
区别在于异常处理.Files.list遍历期间发生的任何异常都将转换DirectoryIteratorException为UncheckedIOException.另一个细微差别是分裂器明确地报告了DISTINCT特征,所以如果你这样做Files.list().distinct(),distinct()步骤将被优化(因为已经知道元素是不同的).使用Iterable.spliterator()默认实现时,不会执行此优化.
这里没什么特别的.您应该期望UncheckedIOException可能在终端流操作执行过程中弹出(例如,由于访问网络文件夹时网络超时).
| 归档时间: |
|
| 查看次数: |
3001 次 |
| 最近记录: |