不知道文件格式就读二进制文件

时间:2010-12-21 08:14:30

标签: java file

我正在研究一个java项目,我必须阅读一些这样的文件: - EntryID.data - EntryID.index - KeyText.data - KeyText.index ...

我认为这些文件在字典项目中使用,但我找不到任何关于此的文档。我怎样才能阅读或了解它们的格式?抱歉,我的英文=。=

非常感谢!

3 个答案:

答案 0 :(得分:1)

与数据库管理系统中的文件类似。一个用于存储数据的文件,另一个用于存储至少一个索引以加速查询。

我将从十六进制编辑器开始查看该文件。有时,内容二进制文件会提示。

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


Google告诉我, Apple的 Dictionary.app 使用了所有四个文件Have a look at this blog,这可以指出你正确的方向。


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

答案 1 :(得分:1)

嗯,这有点困难。 数据可能意味着什么。

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

答案 2 :(得分:0)

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

C#库位于https://github.com/kurema/MacDictionaryGeneral。但* .index太难理解和实施。 info.plist说* .index是trie索引,这是完全无法理解的信息。