从文件 Java 8 中读取行并在两者之间中断的最佳方法



Files.lines().forEach()方法不允许break。在 Java 8 中分块读取行并在需要时中断的最佳方法是什么?

更新 1:异常示例。

public class Main {
public static void main(String[] args) {
    try(IntStream s = IntStream.range(0, 5);){
    s.forEach(i -> validate(i));
    }catch(Exception ex){
    System.out.println("Hello World!");    
    }
}
static void validate(int s){
    if(s > 1){            
        //throw new Exception(); ?
    }
    System.out.println(s);
} }
使用

java-9 takeWhile很容易,所以当条件(s <1(失败时会把流的剩余部分放在这里

当遇到与谓词不匹配的元素时,将丢弃流的其余部分。

s.takeWhile(s -> s < 1).forEach(System.out::println);

通过使用java-8尝试了一个示例,但这并非都像takeWhile那样有效,通过结合peekfindFirst()但需要有没有意义的双重检查条件,而不是这个,我更喜欢标准的while循环

IntStream.range(0, 5).peek(i->{
         if(i<3) {
             System.out.println(i);
         }
     }).filter(j->j>=3).findFirst();

在 PEEK 中执行操作,当谓词在 findFirst 中验证时,流将中断

相关内容

最新更新