/* Write a program to find all distinct words from the given file. Remove special chars like ".,;:" etc. Ignore case sensitivity. */ import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class MyDistinctFileWords { public List getDistinctWordList(String fileName) { FileInputStream fis = null; DataInputStream dis = null; BufferedReader br = null; List wordList = new ArrayList(); try { fis = new FileInputStream(fileName); dis = new DataInputStream(fis); br = new BufferedReader(new InputStreamReader(dis)); String line = null; while((line = br.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, " ,.;:\""); while(st.hasMoreTokens()) { String tmp = st.nextToken().toLowerCase(); if(!wordList.contains(tmp)) { wordList.add(tmp); } } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(br != null) br.close(); } catch(Exception ex) {} } return wordList; } public static void main(String a[]) { MyDistinctFileWords distFw = new MyDistinctFileWords(); List wordList = distFw.getDistinctWordList("C:/sample.txt"); for(String str:wordList) { System.out.println(str); } } }