Read a file line by line using java 8 lambda stream (example)

1. Read file using java 8 lambda stream

  • Given a file, read input file by line by line using lambda stream in java 8.
  • Get the input file (“readFile.txt”) from class path or some absolute location.
  • We will use Java 7 feature try -with-resources, which will ensures that resources will be closed (automatically).
  • Read the input file, line by line.
  • Register onClose method to attach a task.
    • onClose method will be called, when read operation will be completed.
    • Printing the “Finished reading the file” when stream is closed.

2. Program – read input file line by line using java 8 stream lambda

package org.learn;
 
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
 
public class ReadFileLineByLine {
 
    public static void main(String[] args) throws IOException {
        /*
            Hello
            We are reading file
            using java 8
            Stream
         */
        Path file = Paths.get("readFile.txt");
        try(Stream<String>lines = Files.lines(file)
                        .onClose(() -> System.out.println("Finished reading the file"))) {
            lines.forEach(System.out::println);
        }
    }
}

3. Output- read input file line by line (java 8 stream lambda)

Hello
We are reading file
using java 8
Files
Finished reading the file