FileProcessing.java
- package org.drip.zen.juice;
- import java.io.BufferedReader;
- import java.io.FileReader;
- /*
- * 1) Number of lines in the file
- * 2) Read the File into a String Array
- * 3) Count the Number of Words in a Single Line
- * 4) Count the Number Words across the full File
- * 5) Display the File Contents
- * 6) Some Notes on Error Handling
- * 7) Exercise - Count the Number of Instances of Occurrence of a Word (example, Romeo)
- * 8) Exercise - Find out the Line that has the most Occurrence of the given Word
- */
- public class FileProcessing {
- static int NumberOfLinesInFile (String fullFileName)
- throws Exception
- {
- String line = "";
- int numberOfLines = 1;
- boolean stopReading = false;
- BufferedReader reader = new BufferedReader (new FileReader (fullFileName));
- while (stopReading == false)
- {
- line = reader.readLine();
- if (line == null)
- {
- stopReading = true;
- }
- else
- {
- numberOfLines = numberOfLines + 1;
- }
- }
- reader.close();
- return numberOfLines;
- }
- static String[] ReadFile (String fullFileName)
- throws Exception
- {
- int numberOfLinesToRead = NumberOfLinesInFile (fullFileName);
- String[] fileLines = new String[numberOfLinesToRead];
- String line = "";
- int lineNumber = 0;
- boolean stopReading = false;
- BufferedReader reader = new BufferedReader (new FileReader (fullFileName));
- while (stopReading == false)
- {
- line = reader.readLine();
- if (line == null)
- stopReading = true;
- else
- {
- fileLines[lineNumber] = line;
- lineNumber = lineNumber + 1;
- }
- }
- reader.close();
- return fileLines;
- }
- static int WordCount (String singleLine)
- {
- if (singleLine == null)
- {
- return 0;
- }
- int count = 1;
- for (int letterIndex = 0; letterIndex < singleLine.length(); letterIndex = letterIndex + 1)
- {
- char letter = singleLine.charAt (letterIndex);
- if (letter == ' ')
- {
- count = count + 1;
- }
- }
- return count;
- }
- static String[] Words (String singleLine)
- {
- if (singleLine == null)
- {
- return null;
- }
- String[] wordsInLine = singleLine.split (" ");
- return wordsInLine;
- }
- public static final void main (String[] input)
- throws Exception
- {
- String fileLocation = "C:\\DRIP\\CreditAnalytics\\Daemons\\Feeds\\TextMiner\\RomeoAndJuliet.txt";
- int fileLineCount = NumberOfLinesInFile (fileLocation);
- String[] fileContents = ReadFile (fileLocation);
- int totalWords = 0;
- for (int i = 0; i < fileLineCount; i = i + 1)
- {
- String currentLine = fileContents[i];
- int numberOfWordsInCurrentLine = WordCount (currentLine);
- totalWords = totalWords + numberOfWordsInCurrentLine;
- String[] wordsInCurrentLine = Words (currentLine);
- String wordDump = "";
- for (int j = 0; j < numberOfWordsInCurrentLine; j = j + 1)
- {
- wordDump = wordDump + wordsInCurrentLine[j] + ",";
- }
- System.out.println (wordDump);
- }
- System.out.println ("\tNumber of Lines in File: " + fileLineCount);
- System.out.println ("\tNumber of Words in File: " + totalWords);
- }
- }