Если у вас есть контроль над форматом файла, и это не очень большой файл (например, <1 ГиБ), задумывались ли вы об использовании протокольных буферов Google? </p>
Они генерируют код, который анализирует (и сериализует)содержимое файла / байта [].Протоколные буферы используют подход тегирования для каждого значения, которое включает (1) номер поля и (2) тип, поэтому они имеют хорошие свойства, такие как прямая / обратная совместимость с необязательными полями и т. Д. Они довольно хорошо оптимизированы как для скорости, так и для размера файла.добавление только ~ 2 байтов служебной информации для короткого байта [], с ~ 2-4 дополнительными байтами для кодирования длины в больших полях byte [] (длины, закодированные VarInt).
Это может быть излишним, ноесли у вас есть куча различных полей и типов, protobuf действительно полезен.См .: http://code.google.com/p/protobuf/.
Альтернативой является Thrift от Facebook, с поддержкой еще нескольких языков, хотя, возможно, в последнем, когда я проверял, диком использовании меньше.