package edu.northwestern.at.utils.spellcheck;
import java.io.*;
import java.util.*;
/** FileBasedSpellingDictionary -- implements spelling checker dictionary loaded from a file.
*/
public class FileBasedSpellingDictionary extends HashMapSpellingDictionary
{
/** The dictionary file name. */
private String dictionaryFileName = "";
/** Constructs a new FileBasedSpellingDictionary.
*
* @param dictionaryFileName The dictionary file name.
*
* @throws IOException
*/
public FileBasedSpellingDictionary( String dictionaryFileName )
throws IOException
{
super();
this.dictionaryFileName = dictionaryFileName;
try {
read(
new BufferedReader(
new FileReader(dictionaryFileName)
)
);
} catch (FileNotFoundException e) {
// ignore - use empty dictionary if file doesn't exist.
}
}
/** Outputs the dictionary.
*
* @throws IOException
*/
private void outputDictionary()
throws IOException
{
write(
new BufferedWriter(
new FileWriter(dictionaryFileName)
)
);
}
/** Updates the dictionary.
*
* @param word The word to add to the dictionary.
*
* @return True if word added successfully.
*/
public boolean addWord( String word )
{
if ( super.addWord( word ) )
{
try {
outputDictionary();
} catch (Exception e) {
return false;
}
return true;
}
return false;
}
}