2010-12-21 74 views
0

我工作的一个Java项目,我有阅读一些文件,像这样的: - EntryID.data - EntryID.index - KeyText.data - KeyText.index 。 ..读二进制文件不知道文件格式

我认为这些文件用于字典项目,但我找不到任何有关此文件。我怎么读他们或知道他们的格式?对不起,我的英文=。=

非常感谢!

+0

嗯......如果你不知道文件来自哪里,而你又不知道它们包含什么,那么为什么你需要阅读它们? – 2010-12-21 08:44:04

回答

1

这个看起来像像数据库管理系统中的文件。一个文件用于存储数据,另一个用于存储至少一个索引以加快查询速度。

我会从一个十六进制编辑器开始,看看这个文件。有时候,内容二进制文件给出了一个提示。

另一种想法:查看类路径并检查属性和资源文件。也许你会找到一个数据库驱动程序或一些配置文件与jdbc连接字符串。


谷歌告诉我,所有四个文件是由苹果公司的Dictionary.app使用Have a look at this blog,这可以指出你在正确的方向。


最后一点 - 读取未记录的二进制文件是一项挑战。我通常从010 Editor开始分析数据结构并开发基于Java的测试工具来读取数据。这是某种 尝试和错误 进化过程。

+0

谢谢大家,我已经使用十六进制编辑器打开它,我可以阅读一些有意义的字符串,但我仍然无法获得文件格式。 keytext.data文件包含越南语中英文单词的定义,我无法理解keytext.index文件的内容。我也读了很多有关苹果DIC应用程序的话题,但我找不到任何东西,我会再试一次。提前致谢 ! – james87 2010-12-21 08:40:38

+0

它*是*字典,您可以期待某种键/值对:英语单词和不同语言的翻译。我怀疑你可以找到某种允许使用字典文件的java库 - 专注于从文件中解析所需的信息,也许可以将其转换为新的数据结构。 – 2010-12-21 08:54:39

+0

我会尝试你的建议,谢谢。 – james87 2010-12-21 09:07:08

1

那么,这是有点困难。 数据可能意味着任何事情。

您可以尝试UNIX实用程序file或使用十六进制编辑器打开文件并查找有趣的字符串(实用程序strings也对此有帮助)。

0

某些信息在info.plist中。
KeyText.data有时使用zlib压缩。 78 9C是众所周知的zlib-header,因此您可以在找到它时进行解压缩。解压缩条目的大小在压缩条目之前。
条目大小在数组输入之前。

C#库在https://github.com/kurema/MacDictionaryGeneral。但* .index太难理解和实施。 info.plist表示* .index是缺乏充分理解的信息的索引。