2010-12-21 75 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是缺乏充分理解的信息的索引。