In this article, we will show you how to use java.io.BufferedReader to read content from a file

Note
Read this different ways read a file

1. Files.newBufferedReader (Java 8)

In Java 8, there is a new method Files.newBufferedReader(Paths.get("file")) to return a BufferedReader

filename.txt

A
B
C
D
E

FileExample1.java

package com.favtuts.io.file;

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import com.favtuts.io.utils.ResourceHelper;

public class FileExample1 {

    public static void main(String[] args) {
        
        StringBuilder sb = new StringBuilder();

        String fileName = ResourceHelper.getAbsoluteFilePath("filename.txt");

        try (BufferedReader br = Files.newBufferedReader(Paths.get(fileName))) {
            
            // read line by line
            String line;
            while((line = br.readLine()) != null) {
                sb.append(line).append("\n");
            }
        } catch (IOException e) {
            System.err.format("IOException: %s%n", e);
        }

        System.out.println(sb);
    }
    
}

Output

A
B
C
D
E

2. BufferedReader

2.1 A classic BufferedReader with JDK 1.7 try-with-resources to auto close the resources.

FileExample2.java

package com.favtuts.io.file;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import com.favtuts.io.utils.ResourceHelper;

public class FileExample2 {

    public static void main(String[] args) {
        
        String fileName = ResourceHelper.getAbsoluteFilePath("filename.txt");

        try (FileReader reader = new FileReader(fileName); 
            BufferedReader br = new BufferedReader(reader)) {
            
            // read line by line
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

        } catch (IOException e) {
            System.err.format("IOException: %s%n", e);
        }
    }
    
}

2.2 In the old days, we have to close everything manually.

FileExample3.java

package com.favtuts.io.file;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import com.favtuts.io.utils.ResourceHelper;

public class FileExample3 {

    public static void main(String[] args) throws IOException {
        
        BufferedReader br = null;
        FileReader fr = null;

        String fileName = ResourceHelper.getAbsoluteFilePath("filename.txt");

        try {

            fr = new FileReader(fileName);
            br = new BufferedReader(fr);

            // read line by line
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

        } catch (IOException e) {
            System.err.format("IOException: %s%n", e);
        } finally {
            try {
                if (br != null)
                    br.close();

                if (fr != null)
                    fr.close();
            } catch (IOException ex) {
                System.err.format("IOException: %s%n", ex);
            }
        }
    }
    
}

Download Source Code

$ git clone https://github.com/favtuts/java-core-tutorials-examples

$ cd java-io

References

Leave a Reply

Your email address will not be published. Required fields are marked *