Запись/Чтение данных в массив байт (не сериализация)?
Нужно сохранять/считывать данные в массив байт для передачи по вайфай.
Использовать json и подобные не хочется из-за временнЫх затрат на кодирование/парсинг. Требуется обеспечить передачу(и парсинг) не менее 30 блоков в секунду. Причём размер блока ограничивает возможности. Т.е. 10 килобайтный json распарсить без проблем с такой частотой, а вот если он уже мегабайт размером или 10 мегабайт... Поэтому нужно сделать просто бинарный массив с сохранением внём целых, вещественных чисел и строк в фиксированном порядке. Вроде как я понял, как сохранять-читать числа указывая смещение в массиве байт и преобразовывая массив байт в массив чисел. А вот как строки сохранять-читать понять не могу.
*с java знаком очень поверхностно, хотелось бы найти какой-то аналог Сиплюсплюсного read/write в поток.
Строки можно кодировать при сериализации так, чтобы заканчивались символом '\0', AsciiZ.
А вообще, для таких частных целей часто используются ProtoBuf, MsgPack.
Но сперва нужно убедиться что узким горлышком является именно сериализация в JSON.
Пока код не реализован, нечего проверять. И это не сериализация, это передача части данных из объектов, а не полная сериализация. Скорость передачи ограничивает количество допустимых объектов и частоту синхронизации. Т.е. 30 раз в сеукнду это минимум, лучше бы 60 раз, но это уже не критично. И чтение/запись на смартфонах примерно пятилетней давности должно бытсро работать. Не считая всей остальной нагрузки.
Речь о локальном мультиплеере, забыл об этом сказать, очень динамичной игре с сотнями объектов синхронизации. Или тысячами объектов. Смотря насколько удастся скорость передачи данных быстрой сделать получится. При скромной оценке получается более 1 мегабайта в секунду (при 1000 объектов). Ну и время кодирования/декодирования должно быть не более 1/100 секунды, потому что ещё и рисовать нужно...