How to read file in Java – BufferedReader

In this article, we will show you how to use java.io.BufferedReader to read content from 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.mkyong;

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

public class FileExample1 {

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();

        try (BufferedReader br = Files.newBufferedReader(Paths.get("filename.txt"))) {

            // 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.mkyong;

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

public class FileExample2 {

    public static void main(String[] args) {

        try (FileReader reader = new FileReader("filename.txt");
             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.mkyong.calculator;

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

public class FileExample3 {

    public static void main(String[] args) {

        BufferedReader br = null;
        FileReader fr = null;

        try {

            fr = new FileReader("filename.txt");
            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);
            }
        }

    }

}

References

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
39 Comment threads
21 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
49 Comment authors
venkateshBiruk WendesenAnon12345EswarI am groot Recent comment authors
newest oldest most voted
Ciprian
Guest
Ciprian

Very good and “to the point” article! Congrats!

André
Guest
André

Excelent!
just for comment, in your first example, the line
“br = new BufferedReader(new FileReader(FILENAME));”
wasn’t necessary!

Thank you!
I learn a lot with you!

Biruk Wendesen
Guest
Biruk Wendesen

Thank you this is anice example.

Moomal
Guest
Moomal

Thanks a bunch! You just saved my day.

André
Guest
André

Congratulations, for your posts, is has helped me a lot!

Dhanashree Makhe
Guest
Dhanashree Makhe

Hello sir pls send me code of BufferReader…Sir please…

trackback
How to read file from Java - BufferedInputStream Example | Java

[…] visit How to read file from Java – BufferedReader Example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 […]

gaurav patil
Guest
gaurav patil

how to open multiple file in different directory

galaczi
Guest
galaczi

public Ceg(String file) { Scanner scanner = null; try { scanner = new Scanner(new File(file)); } catch (FileNotFoundException ex) { System.out.println(“Allomany megnyitasi hiba!!”); System.exit(1); } while (scanner.hasNextLine()) { String line = scanner.nextLine(); if (line.length() != 0) { System.out.println(“***Line: ” + line); StringTokenizer stk = new StringTokenizer(line, “, .;:?!”); int id = Integer.parseInt(stk.nextToken()); String vezeteknev = stk.nextToken(); String keresztnev = stk.nextToken(); int eletkor = Integer.parseInt(stk.nextToken()); String beosztas = stk.nextToken(); Alkalmazott a = new Alkalmazott(id, vezeteknev, keresztnev, eletkor, beosztas); this.alkalmazott.add(a); } } }

k
Guest
k

it says the file is not found. what is wrong?

mkyong
Guest
mkyong

Create the file manually.

John Jenkins
Guest
John Jenkins

I created the file. I have used “thing.txt” and I have used “C:UsersJohnWorkspaceLunaSR2ReadFilething.txt”

John Jenkins
Guest
John Jenkins

I created thing.txt using Eclipse

Justin George
Guest
Justin George

Very Good article. Is there a way to access folder using authenitcation. Right now I’m using smb api for this. But it would be easier if the authentication can be done in this program.

Ray
Guest
Ray

Great and to the point, but I’m stuck on a ‘file not found’ exception because I put my file inside the src folder like this: src/res_folder/file.txt Does anyone know how to access that? I tried things like getResourceAsStream, get Resource, classloader, and putting the path as “/res_folder/file.txt” and other things but still have the same error.

Ray
Guest
Ray

ok, after hours and hours of looking I somehow accidentally figured it out myself, so I’ll just share it here for anyone else.
At this line: br = new BufferedReader(new FileReader(“C:\testing.txt”));
I changed it to: br = new BufferedReader(new FileReader(new File(“src/res/myfile.txt”)));

This works for me, but since I do more Android programming, I’m not sure if this is the best approach.

abcd
Guest
abcd

Verryyyyyyyyyyyyyy Guuuddddd!!!

Jens Preem
Guest
Jens Preem

What if when I want to read in file not from newline to newline but from some other token to token? Like from LABEL to LABEL etc. What tool should I use then?

prestige
Guest
prestige

i guess u have to use Scanner to read the file. public class readFile { public static void main(String args[]) { File f = new File(filePath); Scanner read = new Scanner(f).useDelimeter(“put anything as a delimeter eg: ##”); String content =read.next(); while((content=read.next()).hasNext()) { content += content; } } }

Dara
Guest
Dara

Itis a very good code. I alos have written some tips in Java for file access and manipulation including reading, writing, creating file, and folder,…http://www.worldbestlearningcenter.com/tips/Java-write-file.htm

trackback
Reading reading a text file in Java | Java Programming
Jane
Guest
Jane

HE HE HE HI

CJ
Guest
CJ

thanks you !

Raja
Guest
Raja

Hi, your codes works fine but i am getting an encrypted version, so how can i get non-encrypted version.

Dam
Guest
Dam

How can you adapt the code to allow the variable “sCurrentline”, to be manipulated through methods such as, .split(), out side of the try-catch statement. It will not even print “sCurrentLine”, unless it is in side the try-catch statement.

Fernando
Guest
Fernando

Hi, where the txt file should be placed??
I created a txt file on the same folder of the java files and the application always throw the FileNotFoundException. I tried different names, different format files, but it never finds the file.

Thanks

srija
Guest
srija

you can save it anywhere but you have to save it with .java extension

Muthukumar JeyaMurugan
Guest
Muthukumar JeyaMurugan

The entire Java File Operation like Reading, writing, Delete are found here,
http://antguider.blogspot.in/2012/06/java-file-operation.html

Rajesh
Guest
Rajesh

Thanks it worked for me.:)

Peter
Guest
Peter

Finally after much searching, you answered my question, Mike ! Thanks ! There are a lot of people out in the web asking the same question. When they and, (up till a few moments ago), myself included, try to “import” a simple text file into an Eclipse project, we were all receiving “file not found”. Being new to Java I was amazed that this was such an “issue” for eclipse. I like Eclipse but something so fundamental, shouldn’t be so frustratingly hard. I guess the Devs are busy working on other more urgent issues and we cant complain as it… Read more »

aljun
Guest
aljun

somebody help this problem …
how to read this file 1
23
45

Neo
Guest
Neo

In your example, you should make sure to close the BufferedReader, otherwise the file may be lock not readable by some other process.

so
….
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}

br.close();
…..

Russel
Guest
Russel

Di Shing

mahanta chauhan
Guest
mahanta chauhan

Why br is initialized twice?

I am groot
Guest
I am groot

fdbfd

Timothy Jlay
Guest
Timothy Jlay

hi I am very new to java and I would like to know how to write a program that would move multiple files from a different folder, delete the files from the previous folder and copy and rename those files in another folder

disqus_mLsYNn89SO
Guest
disqus_mLsYNn89SO

sssssssssssssssssss

karthik
Guest
karthik

you are printing –

System.out.println(sCurrentLine);

what if i want to store them in string array ?

Kashey
Guest
Kashey

String [] aray = new String[10]; // 10 for example

try (BufferedReader br = new BufferedReader(new FileReader(“C:\testing.txt”)))
{

String sCurrentLine;
int count = 0;
while ((sCurrentLine = br.readLine()) != null) {
array[count++] = sCurrentLine;
}

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

RAI
Guest
RAI

how can I read .txt in java web

Gowtham
Guest
Gowtham

Hii,
try (BufferedReader br = new BufferedReader(new FileReader(“C:\testing.txt”))),

how to close this connection in finally? or else it will automatically closes.