我工作的一个Java项目,我有阅读一些文件,像这样的: - EntryID.data - EntryID.index - KeyText.data - KeyText.index 。 ..读二进制文件不知道文件格式
我认为这些文件用于字典项目,但我找不到任何有关此文件。我怎么读他们或知道他们的格式?对不起,我的英文=。=
非常感谢!
我工作的一个Java项目,我有阅读一些文件,像这样的: - EntryID.data - EntryID.index - KeyText.data - KeyText.index 。 ..读二进制文件不知道文件格式
我认为这些文件用于字典项目,但我找不到任何有关此文件。我怎么读他们或知道他们的格式?对不起,我的英文=。=
非常感谢!
这个看起来像像数据库管理系统中的文件。一个文件用于存储数据,另一个用于存储至少一个索引以加快查询速度。
我会从一个十六进制编辑器开始,看看这个文件。有时候,内容二进制文件给出了一个提示。
另一种想法:查看类路径并检查属性和资源文件。也许你会找到一个数据库驱动程序或一些配置文件与jdbc连接字符串。
谷歌告诉我,所有四个文件是由苹果公司的Dictionary.app使用。 Have a look at this blog,这可以指出你在正确的方向。
最后一点 - 读取未记录的二进制文件是一项挑战。我通常从010 Editor开始分析数据结构并开发基于Java的测试工具来读取数据。这是某种
尝试和错误
进化过程。
谢谢大家,我已经使用十六进制编辑器打开它,我可以阅读一些有意义的字符串,但我仍然无法获得文件格式。 keytext.data文件包含越南语中英文单词的定义,我无法理解keytext.index文件的内容。我也读了很多有关苹果DIC应用程序的话题,但我找不到任何东西,我会再试一次。提前致谢 ! – james87 2010-12-21 08:40:38
它*是*字典,您可以期待某种键/值对:英语单词和不同语言的翻译。我怀疑你可以找到某种允许使用字典文件的java库 - 专注于从文件中解析所需的信息,也许可以将其转换为新的数据结构。 – 2010-12-21 08:54:39
我会尝试你的建议,谢谢。 – james87 2010-12-21 09:07:08
某些信息在info.plist中。
KeyText.data有时使用zlib压缩。 78 9C是众所周知的zlib-header,因此您可以在找到它时进行解压缩。解压缩条目的大小在压缩条目之前。
条目大小在数组输入之前。
C#库在https://github.com/kurema/MacDictionaryGeneral。但* .index太难理解和实施。 info.plist表示* .index是缺乏充分理解的信息的索引。
嗯......如果你不知道文件来自哪里,而你又不知道它们包含什么,那么为什么你需要阅读它们? – 2010-12-21 08:44:04