Skip to main content

Java Program to calculate number of characters, words and lines while reading from a input stream (file or console)

import java.io.*;
class WordCount{
    public static int words = 0;
    public static int lines = 0;
    public static int chars = 0;
    public static void wc(InputStreamReader isr) throws IOException{
        int c = 0;
        boolean lastWhite = true;
        String WhiteSpace = " \t\n\r";
        while((c = isr.read()) != -1){
            chars++;
            if(c == '\n')
                lines++;
            int index = WhiteSpace.indexOf(c);
            if(index == -1){
                if(lastWhite == true){
                    ++words;
                }
            lastWhite = false;
            }
            else
                lastWhite = true;
        }
        if(chars != 0)
            ++lines;
    }
    public static void main(String args[]){
        FileReader fr;
        try{
            if(args.length == 0) {
                wc(new InputStreamReader(System.in));
            }
             
            else{
                for(int i=0; i
                    fr = new FileReader(args[i]);
                    wc(fr);
                }
            }
        }
        catch(IOException e){
            return;
        }
        System.out.println(lines + " " + words + " " + chars);
    }
}

Comments