BufferedReader
is a wrapper class around another Reader
class (like FileReader
or InputStreamReader
) that buffers input to provide efficient reading of characters, arrays, and lines. It improves performance by minimizing the number of I/O operations, especially useful for reading text files line by line.
Commonly Used Constructors and Methods


Simple Program: Read File Line-by-Line Using BufferedReader
Read and print all lines from a file notes.txt
using BufferedReader
.
import java.io.*; public class BufferedReaderSimpleDemo { public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader("notes.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
Problem Statement:
LotusJavaPrince collects user feedback stored in a text file. Mahesh writes a program to read feedback line by line using BufferedReader
, counts the number of feedback entries, and prints them.
import java.io.*; public class FeedbackProcessor { public static void main(String[] args) { int feedbackCount = 0; try (BufferedReader br = new BufferedReader(new FileReader("userFeedback.txt"))) { String feedback; System.out.println("User Feedbacks:"); System.out.println("----------------"); while ((feedback = br.readLine()) != null) { System.out.println(feedback); feedbackCount++; } System.out.println("----------------"); System.out.println("Total feedback entries: " + feedbackCount); } catch (IOException e) { System.out.println("Error reading feedback file."); e.printStackTrace(); } } }
Assuming the file userFeedback.txt
contains:
Great application, very user-friendly.
Please add dark mode.
Encountered some bugs on login.
Excellent customer support.
Console Output:
User Feedbacks:
----------------
Great application, very user-friendly.
Please add dark mode.
Encountered some bugs on login.
Excellent customer support.
----------------
Total feedback entries: 4
The BufferedReader
class is an essential tool for efficient reading of character streams in Java. By wrapping around other Reader
classes, it buffers input and minimizes expensive I/O operations, making it ideal for reading text data line-by-line or in bulk.