BufferedReader in Java : How To Read Text From Input Stream

Last updated on Jun 10,2021 49.1K Views

BufferedReader in Java : How To Read Text From Input Stream

edureka.co

Java provides several mechanisms in order to read from a file. One important class that helps in performing this operation is the BufferedReader. So, this article on BufferedReader in Java will help you in understanding Bufferedreader class along with examples. Following are the topics covered in this blog:

What is BufferedReader in Java?

BufferedReader is a Java class that reads text from the input stream. It buffers the characters so that it can get the efficient reading of characters, arrays, etc. It inherits the reader class and makes the code efficient since we can read the data line-by-line with the readline() method. There are a few pointers we have to keep in mind while working with BufferedReader class in Java.

BufferedReader Class Declaration

public class BufferedReader extends Reader

Java BufferedReader Constructors

ConstructorDescription

BufferedReader(Reader reader)

This constructor creates a buffering character-input stream that works on a default-size input buffer.

BufferedReader(Reader reader, int size)

It uses the specified size for the input buffer for buffering the character-input stream.

Methods And Description

Following are the methods with the description that we have for the Java BufferedReader class.

MethodDescription

int read()

Reads a single character

String readLine()

It reads a line of text

void reset()

Repositions the stream to the position where the mark method was last called

int read(char[]  cb, int off , int len)

Reads the characters in a portion of an array

boolean markSupported()

It tests the input stream support for reset and mark method

boolean ready()

It checks whether the input stream is ready for reading

long skip(long n)

skips the characters

void close()

It closes the input stream

void mark(int readAheadLimit)

Used to mark the current position in the stream

Example:

import java.io.*;
public class Example{
public static void main(String args[] throws Exception)
{
FileReader f = new FileReader("filelocation");
BufferedReader b = new BufferedReader(f);

int i ;
while((i = b.read()) != -1){
System.out.println((char) i);
}
b.close();
f.close();

Difference Between Scanner And BufferedReader

BufferedReaderScanner

Synchronous and should be used with multiple threads

Not synchronous and not used with multiple threads

Buffer memory is larger

Buffer memory is smaller

Faster than Scanner

Slower because it does parsing of the input data

There is no ambiguity related to nextline() method

There are a lot of problems with the nextline() method.

Uses buffering to read characters from the character-input stream

It is a simple text scanner which parses primitive types and strings

BufferedReader in JDK7 Example

import java.io.*;
public class Example{
public static void main(String[] args){
try( BufferedReader b = new BufferedReader(new fileReader("filename")));
{
String s;
while((s = b.readLine()) != null){
System.out.println(s);
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

Reading Data From Console By InputStreamReader And BufferedReader in Java

import java.io.*;
public class Example{
public static void main(String args[] throws Exception){
InputStreamReader i = new InputStreamReader(system.in);
BufferedReader b = new BufferedReader(i);
System.out.println("Enter Course");
String course = b.readLine();
System.out.pritln("Edureka" + course);
}
} 
Output:Enter Course
       Java
       Edureka Java

Reading Data From Console Until User Writes Stop

import java.io.*;
public class Example{
public static void main(String args[] throws Exception){
InputStreamReader i = new InputStreamReader(system.in);
BufferedReader b = new BufferedReader(i);
string course = "";
while(!name.equals("stop")){
System.out.println("enter course:");
course = b.readLine();
System.out.println("Course is:" + course);
}
b.close();
i.close();
} 
}
Output: enter course:
        Course is: Java
        enter course:
        Course is: stop

This brings us to the end of this article where we have learned how we can read characters from the character-input stream using the BufferedReader class in Java. Hope you are clear with all that has been shared with you in this tutorial.

If you found this article on “BufferedReader in Java” relevant, check out the Edureka’s Java Certification Training, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. 

We are here to help you with every step on your journey and come up with a curriculum that is designed for students and professionals who want to be a Java Developer. The course is designed to give you a head start into Java programming and train you for both core and advanced Java concepts along with various Java frameworks like Hibernate & Spring.

If you come across any questions, feel free to ask all your questions in the comments section of “BufferedReader in Java” and our team will be glad to answer.

Upcoming Batches For Java Course Online
Course NameDateDetails
Java Course Online

Class Starts on 7th December,2024

7th December

SAT&SUN (Weekend Batch)
View Details
BROWSE COURSES