Counting number of words in text file using java

Java Programming Java8Object Oriented Programming

We can read words in a file using BufferedReader class of Java and splitting the read data based on space character. See the example below:

Example

Consider the following text file in classpath.

test.txt

This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
This is Line 6
This is Line 7
This is Line 8
This is Line 9
This is Line 10

Tester.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class Tester {

   private static final String FILE_PATH = "data.txt";
   public static void main(String args[]) throws IOException {
      FileUtil fileUtil = new FileUtil(FILE_PATH);
      System.out.println("No. of words in file: " + fileUtil.getWordCount());
   }
}

class FileUtil {
   static BufferedReader reader = null;
   public FileUtil(String filePath) throws FileNotFoundException {
      File file = new File(filePath);
      FileInputStream fileStream = new FileInputStream(file);
      InputStreamReader input = new InputStreamReader(fileStream);
      reader = new BufferedReader(input);
   }

   public static int getWordCount() throws IOException {
      int wordCount = 0;
      String data;
      while((data = reader.readLine()) != null){

         // \\s+ regex for space delimiter
         String[] words = data.split("\\s+");
         wordCount += words.length;
      }
      return wordCount;
   }
}

This will produce the following result −

Output

No. of words in file: 40
raja
Published on 13-Aug-2018 12:48:16
Advertisements