Java 8 stream to file [duplicate]

Probably the shortest way is to use Files.write along with the trick which converts the Stream to the Iterable:

Files.write(Paths.get(filePath), (Iterable<String>)stream::iterator);

For example:

Files.write(Paths.get("/tmp/numbers.txt"),
     (Iterable<String>)IntStream.range(0, 5000).mapToObj(String::valueOf)::iterator);

If it looks too hackish, use more explicit approach:

try(PrintWriter pw = new PrintWriter(Files.newBufferedWriter(
                     Paths.get("/tmp/numbers.txt")))) {
    IntStream.range(0, 5000).mapToObj(String::valueOf).forEach(pw::println);
}

If you have stream of some custom objects, you can always add the .map(Object::toString) step to apply the toString() method.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)