搜集了些资料,并重新整理了源代码
1. 下载stardict字典文件, 以“langdao-ec-gb dictionary(en - zh_CN) 朗道英汉字典”为例
http://prdownloads.sourceforge.net/stardict/stardict-langdao-ec-gb-2.4.2.tar.bz2?download
2. 将附件的两个jar包加入到build path中
3. 将附件的config.properties放在你的项目根目录下, 并配置字典路径和字典文件名。如下:
dictPath=./stardict-langdao-ec-gb-2.4.2
dictName=langdao-ec-gb
4. 使用。 看代码:
package com.msino.dict.test;
import com.msino.dict.StarDictReader;
import com.msino.dict.manager.DictsManager;
import com.msino.dict.service.IDictsManager;
import com.msino.dict.service.core.Word;
import java.io.FileNotFoundException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Test case of class <code>StarDictReader</code>
* @author XuDong.Su
* @version 1.0, Apr 5, 2009
* @see com.msino.dict.StarDictReader
*/
public class StarDictReaderTest {
private StarDictReader instance;
private IDictsManager dictsManager = new DictsManager();
private String dictsProp = dictsManager.getDictProps();
String dictFileDir = "";
String dictName = "";
/**
* Default constructor.
*/
public StarDictReaderTest() {
dictFileDir = dictsProp.substring(0, dictsProp.indexOf("||"));
dictName = dictsProp.substring(dictsProp.indexOf("||") + 2, dictsProp.length());
System.out.println("dictFileDir : " + dictFileDir);
System.out.println("dictName : " + dictName);
try {
instance = new StarDictReader(dictFileDir, dictName);
} catch (FileNotFoundException ex) {
Logger.getLogger(StarDictReaderTest.class.getName()).
log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) throws InterruptedException {
StarDictReaderTest test = new StarDictReaderTest();
test.lookup();
}
/**
* Test of lookup method, of class DictEngine.
* @throws java.lang.InterruptedException Thread.sleep(long)
*/
public void lookup() throws InterruptedException {
System.out.println("lookup");
String word = "A Programming Language on the 360";
String word2 = "crystal";
String word3 = "trailer";
String word4 = "not exsits";
try {
Word result = instance.lookup(word);
System.out.println(result.self + ": " + result.definition);
Thread.sleep(1000);
long start = System.currentTimeMillis();
System.out.println("Time: " + (start) + "ms");
result = instance.lookup(word2);
System.out.println(result.self + ": " + result.definition);
long end1 = System.currentTimeMillis();
System.out.println("Time: " + (end1) + "ms");
System.out.println("Space Time: " + (end1 - start) + "ms");
result = instance.lookup(word3);
System.out.println(result.self + ": " + result.definition);
long end2 = System.currentTimeMillis();
System.out.println("Time: " + (end2 - end1) + "ms");
result = instance.lookup(word4);
System.out.println(result.self + ": " + result.definition);
long end3 = System.currentTimeMillis();
System.out.println("Time: " + (end3 - end2) + "ms");
} catch (Exception ex) {
System.out.println(ex.getMessage());
//Logger.getLogger(StarDictReaderTest.class.getName()).log(Level.INFO, ex.getMessage());
}
}
}
分享到:
相关推荐
本话题将深入探讨如何使用C++来读取Stardict字典文件并将其转换为SQL格式,以便于进一步的数据分析和处理。 首先,我们需要理解Stardict的文件结构。Stardict采用一种高效的存储方式,包括词典索引文件(.idx)和...
星际译王(StarDict)在Linux, Windows, 甚至Mac OS X上都相应的版本, 因为其开源的缘故, 许多智能手机(iPhone, 黑莓, Maemo, Meego, Symbian, WM)都有移植版读取Stardict词库的手机词典. 这词库我自己本人在用的 --...
StarDict 源代码,C++ 编写,给需要的朋友以作参考。
这些文件通常包含单词、词义、例句等信息,采用二进制格式存储,以提高读取速度。服务器在接收到查询请求后,会解析这些文件,快速定位到所需的信息,然后将结果显示给用户。这种高效的文件存储和检索方式是 ...
开发者可以利用Pyglossary读取、创建和更新XDXF字典,实现字典内容的自动化管理和更新。 总结来说,XDXF是一种强大的字典格式,尤其适合处理具有复杂语义信息的词汇资源。它通过XML的结构化和扩展能力,为词典制作...
4. stardict-kdic-computer-gb-2.4.2:这个文件可能包含了计算机相关的词汇,对于IT从业者或者对计算机技术感兴趣的用户特别有用。 5. stardict-cedict-gb-2.4.2:这可能是一个包含了中文到英文的大型词汇库,特别是...
3. **词典数据处理**:为了将stardict格式的词典数据展示给用户,开发者需要实现数据读取、解压、解析等功能。这可能涉及二进制文件操作、字符串编码处理和JSON或XML解析,因为stardict数据可能包含多种格式。 4. *...
对于开发者来说,将这个数据库整合到自己的软件项目中,可以利用Access提供的API接口,轻松地读取和操作数据。例如,可以开发一个桌面应用,用户输入单词,程序就能即时从数据库中检索出对应的翻译。同时,由于...
4. **Stardict2NDict.exe**:Stardict是一个流行的开源字典软件,这个文件可能是用于将Stardict字典转换为nDict格式的转换工具。 5. **exit.png、search.png、index.png、menu.png**:这些都是图形界面的图标资源,...
《开源Java字典:javadict的探索与应用》 在信息技术日新月异的今天,开源软件成为了软件开发领域的重要组成部分。它们以其开放性、灵活性和社区支持的优势,为开发者提供了丰富的工具和资源。今天我们要关注的是一...