Я хочу создать двоичный формат для передачи данных между экземплярами приложения в виде POF (Plain Old Files;)).Разработка формата обмена файлами для java
Предпосылка:
- должна быть кросс-платформенный
- информации настаиваться включает в себя один Pojo & произвольных байты [] S (файлы собственно, POJO хранит это имя в строке [])
- только последовательный доступ требуется
- должен быть способ, чтобы проверить согласованность
- данных должен быть маленьким и быстрым
- должен предотвратить средний пользователь с архиватором + блокнотом от изменения данных
В настоящее время я использую DeflaterOutputStream + OutputStreamWriter вместе с InflaterInputStream + InputStreamReader для сохранения/восстановления объектов сериализовать XStream, один объект на один файл. Читатели/писатели используют UTF8. Теперь необходимо расширить это, чтобы поддерживать описанные выше. Моя идея формата:
{serialized to XML object}
{delimiter}
{String file name}{delimiter}{byte[] file data}
{delimiter}
{another String file name}{delimiter}{another byte[] file data}
...
{delimiter}
{delimiter}
{MD5 hash for the entire file}
- Это выглядит вменяемым?
- Что бы вы использовали для разделителя и как бы вы его определили?
- Правильный способ расчета MD5 в этом случае?
- Что вы посоветуете, чтобы почитать об этом?
TIA.
Я бы не использовал байт из-за http://c2.com/cgi/wiki?PowerOfPlainText – keuleJ