Core Java

Java 8 – How To Read A File?

A quick guide on how to read the file in older java and new JDK 8 version with example programs.

1. Overview

In this tutorial, We’ll learn how to read a file line by line in java and print the files content onto console with example program.

First, let us use the older java version for example demonstration and next will learn how to do the same in the newer java 8 api.

2. Java Read File Example

First, Use BufferedReader.readLine() method to get the each line from the file.

Example:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.javaprogramto.files.read;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
 
/**
 * Example to read the file in java
 *
 * @author javaprogramto.com
 *
 */
public class ReadFileBeforeJava8 {
 
    public static void main(String[] args) throws IOException {
        String fileLocation = "/Users/workspace/CoreJava/src/main/java/com/javaprogramto/files/read/student.txt";
 
        FileReader fileReader = new FileReader(fileLocation);
 
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String line;
        int index = 1;
 
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println("line " + index + " : " + line);
            index++;
        }
    }
}

Output:

1
2
line 1 : student name - Java Learner
line 2 : Location - India

3. Java Example To Read CSV File

Next, Use the same concept to read the csv file in java but first line will be the csv header and the remaining lines will be holding the actual values.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.javaprogramto.files.read;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
 
/**
 * Example to read the CSV file in java
 *
 * @author javaprogramto.com
 *
 */
public class ReadCSVFileBeforeJava8 {
 
    public static void main(String[] args) throws IOException {
        String fileLocation = "/Users/workspace/CoreJava/src/main/java/com/javaprogramto/files/read/student.csv";
 
        FileReader fileReader = new FileReader(fileLocation);
 
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String csvLine;
        int index = 1;
        String header = bufferedReader.readLine();
                 
        System.out.println("CSV header : "+header);
        while ((csvLine = bufferedReader.readLine()) != null) {
            System.out.println("csv line " + index + " : " + csvLine);
            index++;
        }
    }
}

Output:

1
2
3
4
CSV header : student id,name,age
csv line 1 : 100,Jhon,30
csv line 2 : 101,Shella,35
csv line 3 : 102,Dhon,40

4. Java 8 Streams – Read File Example – Files.readLines()

Further more, Use method Files.readLines() method to get the all the lines in the form of java 8 Stream. Next, use forEach() method to get the each line of file and print into the console.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.javaprogramto.files.read;
 
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Stream;
 
/**
 * Java 8 example to read the file using Streams.
 *
 * @author javaprogramto.com
 *
 */
 
public class Java8ReadFileExample1 {
 
    public static void main(String[] args) {
 
        Path filePath = Path.of(
                "/Users/workspace/CoreJava/src/main/java/com/javaprogramto/files/read/student.csv");
 
        Stream<String> stream = null;
        try {
            stream = Files.lines(filePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        stream.forEach(System.out::println);
 
    }
 
}

Output:

1
2
3
4
student id,name,age
100,Jhon,30
101,Shella,35
102,Dhon,40

5. Java 8 Streams + BufferedReader.lines()

Finally, learn another new method of java 8 api is BufferedReader.lines() method which returns the Stream<String>.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.javaprogramto.files.read;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * Java 8 example to read the file using Streams + BufferedReader.lines().
 *
 * @author javaprogramto.com
 *
 */
 
public class Java8ReadFileExample2 {
 
    public static void main(String[] args) throws IOException {
 
        Path filePath = Path.of(
                "/Users/workspace/CoreJava/src/main/java/com/javaprogramto/files/read/student.csv");
 
        BufferedReader br = Files.newBufferedReader(filePath);
 
        List<String> list = br.lines().collect(Collectors.toList());
 
        list.forEach(System.out::println);
 
    }
}

6. Conclusion

In this article, we have seen how to read the file in java 8 streams with examples.

GitHub

Java 8 Streams Tutorial

Java 8 forEach Stream collect()

Published on Java Code Geeks with permission by Venkatesh Nukala, partner at our JCG program. See the original article here: Java 8 – How To Read A File?

Opinions expressed by Java Code Geeks contributors are their own.

Venkatesh Nukala

Venkatesh Nukala is a Software Engineer working for Online Payments Industry Leading company. In my free time, I would love to spend time with family and write articles on technical blogs. More on JavaProgramTo.com
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button