1 package com.hughes.android.dictionary.engine;
4 import java.io.IOException;
5 import java.io.PrintWriter;
6 import java.io.RandomAccessFile;
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.Collections;
10 import java.util.List;
12 import com.hughes.android.dictionary.DictionaryInfo;
13 import com.hughes.android.dictionary.engine.Index.IndexEntry;
16 public class CheckDictionariesMain {
18 public static void main(String[] args) throws IOException {
19 final File dictDir = new File(DictionaryBuilderMain.OUTPUTS);
21 final PrintWriter dictionaryInfoOut = new PrintWriter(new File("../Dictionary/res/raw/dictionary_info.txt"));
22 dictionaryInfoOut.println("# LANG_1\t%LANG_2\tFILENAME\tFILESIZE\tNUM_MAIN_WORDS_1\tNUM_MAIN_WORDS_2\tNUM_ALL_WORDS_1\tNUM_ALL_WORDS_2");
24 final File[] files = dictDir.listFiles();
26 for (final File dictFile : files) {
27 if (!dictFile.getName().endsWith("quickdic")) {
30 System.out.println(dictFile.getPath());
32 final DictionaryInfo dictionaryInfo = new DictionaryInfo();
34 final RandomAccessFile raf = new RandomAccessFile(dictFile, "r");
35 final Dictionary dict = new Dictionary(raf);
37 dictionaryInfo.uncompressedFilename = dictFile.getName();
38 dictionaryInfo.uncompressedSize = dictFile.length();
41 final PrintWriter textOut = new PrintWriter(new File(dictFile + ".text"));
42 final List<PairEntry> sorted = new ArrayList<PairEntry>(dict.pairEntries);
43 Collections.sort(sorted);
44 for (final PairEntry pairEntry : sorted) {
45 textOut.println(pairEntry.getRawText(false));
50 System.out.println("Stats...");
51 for (int i = 0; i < 2; ++i) {
52 dictionaryInfo.langIsos[i] = dict.indices.get(i).sortLanguage.getIsoCode();
53 final Index index = dict.indices.get(i);
54 for (final IndexEntry indexEntry : index.sortedIndexEntries) {
55 final TokenRow tokenRow = (TokenRow) index.rows.get(indexEntry.startRow);
56 dictionaryInfo.allTokenCounts[i]++;
57 if (tokenRow.hasMainEntry) {
58 dictionaryInfo.mainTokenCounts[i]++;
65 dictionaryInfoOut.println(dictionaryInfo.toTabSeparatedString());
66 dictionaryInfoOut.flush();
67 System.out.println(dictionaryInfo.toTabSeparatedString() + "\n");
70 dictionaryInfoOut.close();