Advertisement
Guest User

Javaslang takeWhile imperative example

a guest
Mar 28th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.00 KB | None | 0 0
  1. package cvi6.demonstrations;
  2.  
  3. import java.io.IOException;
  4. import java.nio.file.Files;
  5. import java.nio.file.Paths;
  6. import java.util.List;
  7.  
  8. import javaslang.collection.Stream;
  9.  
  10. public class JavaslangTakeWhile {
  11.    
  12.     public static void main(String[] args) throws IOException {
  13.         // create javaslang stream from java stream
  14.         java.util.stream.Stream<String> javaStreamOfLines = Files.lines(Paths.get("data.txt"));
  15.         Iterable<String> itr = () -> javaStreamOfLines.iterator();
  16.         Stream<String> lines = Stream.ofAll(itr);
  17.        
  18.         // trivial code for grouping records into lists by "==" delimiter
  19.         // this is not functional, could be rewritten to functional code using recursion
  20.         int i = 0;
  21.         int drop = 0;
  22.         while(!lines.isEmpty()) {
  23.             List<String> record = lines
  24.             .drop(drop)
  25.             .takeWhile(line -> !line.contains("=="))
  26.             .toJavaList();
  27.  
  28.             System.out.println(record);
  29.             drop += record.size()+1;
  30.            
  31.             // don't do it for whole file
  32.             if(i++ > 3) break;
  33.         }
  34.         javaStreamOfLines.close();
  35.     }
  36.    
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement