2015-11-11 20:20:04 -08:00
|
|
|
// streams/FileToWordsBuilder.java
|
2016-12-30 17:23:13 -08:00
|
|
|
// (c)2017 MindView LLC: see Copyright.txt
|
2015-11-15 15:51:35 -08:00
|
|
|
// We make no guarantees that this code is fit for any purpose.
|
2016-09-23 13:23:35 -06:00
|
|
|
// Visit http://OnJava8.com for more book information.
|
2015-11-11 20:20:04 -08:00
|
|
|
import java.io.*;
|
|
|
|
import java.nio.file.*;
|
|
|
|
import java.util.stream.*;
|
|
|
|
|
|
|
|
public class FileToWordsBuilder {
|
|
|
|
Stream.Builder<String> builder = Stream.builder();
|
|
|
|
public FileToWordsBuilder(String filePath)
|
|
|
|
throws Exception {
|
|
|
|
Files.lines(Paths.get(filePath))
|
|
|
|
.skip(1) // Skip the comment line at the beginning
|
|
|
|
.forEach(line -> {
|
|
|
|
for(String w : line.split("[ .?,]+"))
|
|
|
|
builder.add(w);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
Stream<String> stream() { return builder.build(); }
|
2016-01-25 18:05:55 -08:00
|
|
|
public static void
|
|
|
|
main(String[] args) throws Exception {
|
2015-11-11 20:20:04 -08:00
|
|
|
new FileToWordsBuilder("Cheese.dat").stream()
|
|
|
|
.limit(7)
|
|
|
|
.map(w -> w + " ")
|
|
|
|
.forEach(System.out::print);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* Output:
|
|
|
|
Not much of a cheese shop really
|
|
|
|
*/
|