Чтение двоичного файла без знания формата файла - PullRequest
0 голосов
/ 21 декабря 2010

Я работаю над проектом Java, и мне нужно прочитать некоторые файлы, подобные этим: - EntryID.data - EntryID.index - KeyText.data - KeyText.index ...

Я думаю, что эти файлы используются в проекте словаря, но я не могу найти ни одного документа по этому поводу. Как я могу их прочитать или узнать их формат? Извините за мой английский =. =

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 21 декабря 2010

Ну, это довольно сложно. данные могут означать что угодно.

Вы можете попробовать утилиту UNIX file или открыть файл с помощью шестнадцатеричного редактора и найти интересные строки (утилита strings также полезна для этого).

1 голос
/ 21 декабря 2010

Это выглядит как файлы из системы управления базами данных. Один файл для хранения данных, другой - для хранения хотя бы одного индекса для ускорения запросов.

Я бы начал с шестнадцатеричного редактора и посмотрел на файл. Иногда двоичные файлы содержимого дают подсказку.

Еще одна идея: взглянуть на путь к классам и проверить файлы свойств и ресурсов. Может быть, вы найдете драйвер базы данных или некоторые файлы конфигурации со строками подключения jdbc.


Google сказал мне, , что все четыре файла используются Apple Dictionary.app . Загляните в этот блог , это может указать вам правильное направление.


Последнее примечание - чтение недокументированных двоичных файлов является сложной задачей. Я обычно начинаю с 010 Editor , чтобы проанализировать структуру данных и разработать инструмент тестирования на основе Java для чтения данных. Это какой-то пробный и ошибочный эволюционный процесс.

0 голосов
/ 23 июля 2016

Некоторая информация находится в info.plist.
KeyText.data иногда сжимается с помощью zlib.78 9C - это хорошо известный zlib-header, поэтому вы можете распаковать его, когда найдете.Размер распакованной записи предшествует сжатой записи.
Размер записи предшествует записи массива.

Библиотека C # находится в https://github.com/kurema/MacDictionaryGeneral. Но * .index слишком сложен для понимания и реализации.info.plist говорит, что * .index - это индекс trie, которого недостаточно для полного понимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...