Re: Обьект в масив байт
От: Географ Россия нет
Дата: 21.08.09 13:50
Оценка:
Здравствуйте, Аноним, Вы писали:
А>как представвить обьект в в качестве масива байт? Насколько я понял, серриализация сохраняет также мета-данные, поэтому для этой задачи не катит(
А>на си++ это делается так:
А>
А>char* pBuffer = (char*)&some_object;
А>

А>как это делается в яве?

99.99% программистов Java всё же будут использовать сериализацию Кстати, на С++ тоже не всё так просто. Просто получить указатель на объект — это ничего не значит. Это на структуру указатель, при её известной длине, имеет смысл как указатель на массив байт, а вот класс уже так не сохранить, вернее — не восстановить потом, не найти где что лежит, по крайней мере. Да и длина экземпляра класса вещь неопределённая А возможные ссылки на другие структуры и классы? То есть, проблема требует конкретного решения.

Я в Java обычно использую класс ByteBuffer для укладки в массив байт всех полей нужных мне данных из класса. В ByteBuffer есть методы для записи/чтения всех примитивных типов данных. А как понятно, данные любого класса можно свести к сумме примитивных полей. Получается, при аккуратном подходе, очень быстрая и компактная упаковка. Конечно, она не универсальна. Для каждого нового класса придётся написать/дописать свой метод упаковки/распаковки. Но иногда овчинка стоит выделки. Главное при чтении данных через ByteBuffer знать, какой ByteOrder использовался при запаковке
длине
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.