Skip to content
Related Articles

Related Articles

Improve Article

Java Program to Read a Large Text File Line by Line

  • Last Updated : 17 Jun, 2021

As we are are well verse with this topic let us put more stress in order to figure out minute differences between them. Here we are supposed to read from a file on the local directory where a text file is present say it be ‘gfg.txt’. Let the content inside the file be as shown below:

Geeks for Geeks.
A computer sciece portal.
Welcome to this prtal.
Hello Geek !!!

Note: Keep a check that prior doing anything first create a file on the system repository to deal with our program\writing a program as we will be accessing the same directory through our programs.

Methods:

  1. Using Scanner class
  2. Using BufferedReaader class 

Method 1: Using Scanner class

Scanner is a class in java.util package used for obtaining the input of the primitive types like int, double, etc. and strings. It is the easiest way to read input in a Java program, though not very efficient if you want an input method for scenarios where time is a constraint like in competitive programming. Scanner class is used to read the large file line by line. A Scanner breaks its input into tokens, which  by default matches the whitespace. 



Example

Java




// Java Program to Read a Large Text File Line by Line
// Using Scanner class
  
// Importing required classes
import java.io.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
        throws FileNotFoundException
    {
  
        // Declaring and initializing the string with
        // custom path of a file
        String path = "C:\\Users\\HP\\Desktop\\gfg.txt";
  
        // Creating an instance of Inputstream
        InputStream is = new FileInputStream(path);
  
        // Try block to check for exceptions
        try (Scanner sc = new Scanner(
                 is, StandardCharsets.UTF_8.name())) {
  
            // It holds true till there is single element
            // left in the object with usage of hasNext()
            // method
            while (sc.hasNextLine()) {
  
                // Printing the content of file
                System.out.println(sc.nextLine());
            }
        }
    }
}

Output: 

Geeks for Geeks.
A computer sciece portal.
Welcome to this prtal.
Hello Geek !!!

Method 2: Using BufferedReader class

BufferedReader is used to read the file line by line. Basically, BufferedReader() is used for the processing of large files. BufferedReader is very efficient for reading.

Note: Specify the size of the BufferReader or keep that size as a Default size of BufferReader. The default size of BufferReader is 8KB. 

Syntax:

BufferedReader in = new BufferedReader(Reader in, int size);

Example

Java




// Java Program to Read a Large Text File Line by Line
// Using BufferedReader class
  
// Importing required classes
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Declaring a string and initializing it with
        // path of file present on the system
        String path = "C:\\Users\\HP\\Desktop\\gfg.txt";
  
        // Try block to check for exceptions
        try (BufferedReader br
             = new BufferedReader(new FileReader(path))) {
  
            // Declaring a new string
            String str;
  
            // It holds true till threre is content in file
            while ((str = br.readLine()) != null) {
  
                // Printing the file data
                System.out.println(br);
            }
        }
  
        // Catch block to handle the exceptions
        catch (IOException e) {
  
            // Display pop up message if exceptionn occurs
            System.out.println(
                "Error while reading a file.");
        }
    }
}

Output: 

Geeks for Geeks.
A computer sciece portal.
Welcome to this prtal.
Hello Geek !!!

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :