예제 #1
0
  public DictionaryFile(File file) {
    super(file.getPath());
    type = DictionaryType.parse(file.getName());
    affName = type.isArchive() ? ZipUtil.containsFile(getPath(), ".aff") : getPath();
    if (affName != null) affName = new File(affName).getName();

    FileUtil.createFolder(getTempFolder());

    affFile = extractAffFile();
    if (affFile != null) {
      // Detect charset
      affReader.setChartSetReader(true);
      affReader.readFile(affFile, Charset.forName("UTF-8"));
      affReader.setChartSetReader(false);
    }

    dicName = type.isArchive() ? ZipUtil.containsFile(getPath(), ".dic") : getPath();
    if (dicName != null) dicName = new File(dicName).getName();
    dicFile = extractDicFile();
    dicReader.setAffReader(affReader);

    if (dicFile != null) {
      // Detect words count
      dicReader.setWordReader(true);
      dicReader.readFile(dicFile, getCharset());
      dicReader.setWordReader(false);
    }

    if (isValid()) laguageID = FileUtil.changeFileExt(dicName, "");
  }
예제 #2
0
 public String getWordsCount() {
   return wordFormat.format(dicReader.getWordsCount());
 }
예제 #3
0
 public void clear() {
   affReader.clear();
   dicReader.clear();
   System.gc();
 }
예제 #4
0
 public void readFiles() {
   affReader.readFile(affFile, getCharset());
   dicReader.readFile(dicFile, getCharset());
 }