In this tutorials, I am going to show you how to read a File line by line using Java 8 Lambda Expressions.

Read File Line By Line :

Files is a class introduced in Java 7. This class consists exclusively of static methods that will work on files, directories, or other types of files.

Java 8 Read File Line By Line :

Java 8 introduced a method  lines(Path path) used to read all lines from a File as a Java 8 Stream and returns the Stream object.

Java 8 Read File Example :

Create a text file to read.

Sample.txt

Sample.txt
Java 8 Streams
Java 8 Filters
Java 8 Read File Example
Java 8 List to Map Conversion
Spring
Hibernate
JQuery

Reading the above file line by line.

Java8_ReadaFile.java
package com.onlinetutorialspoint.java8;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Java8_ReadaFile {
    public static void main(String[] args) {
        String filePath = "/home/chandrashekhar/Desktop/Sample";
        try (Stream<String> stream = Files.lines(Paths.get(filePath))) {

            stream.forEach(System.out::println);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

On the above example we have used an extreme feature of Java 7 try with resources to manage the Automatic Resource Management (ARM) in Java.

Terminal
Java 8 Streams
Java 8 Filters
Java 8 Read File Example
Java 8 List to Map Conversion
Spring
Hibernate
JQuery

We can also filter the file data using Java 8 stream filtering.

Java 8 Read File with Filter :

We can filter the file data while reading the file itself using the Java 8 Stream API.

Java8_ReadaFile_Filter.java
package com.onlinetutorialspoint.java8;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class Java8_ReadaFile_Filter {
    public static void main(String[] args) {
        String filePath = "/home/chandrashekhar/Desktop/Sample";
        List<String> lines = new ArrayList<>();
        try (Stream<String> stream = Files.lines(Paths.get(filePath))) {

            lines = stream
                    .filter(line -> line.startsWith("Java"))
                    .map(String::toUpperCase)
                    .collect(Collectors.toList());

        } catch (IOException e) {
            e.printStackTrace();
        }
        lines.forEach(System.out::println);
    }
}

On the above example, we have applied the filter on file data with Java keyword, and the data converted as upper case.

Terminal
JAVA 8 STREAMS
JAVA 8 FILTERS
JAVA 8 READ FILE EXAMPLE
JAVA 8 LIST TO MAP CONVERSION

Happy Learning 🙂