Есть ли в Eclipse редактор/просмотрщик сериализованных файлов Java?

Я сериализую свои объекты с помощью ObjectOutputStream(FileOutputStream(File)) и десериализую их с помощью аналогичного InputStreams. Есть ли способ заглянуть внутрь этих сериализованных файлов (предпочтительно в eclipse), чтобы я мог проверить, были ли записаны все необходимые атрибуты?

изменить: поиск Google был отрицательным


person kulpae    schedule 03.02.2011    source источник
comment
Я думаю, вы имеете в виду наоборот.   -  person OrangeDog    schedule 03.02.2011
comment
спасибо, я обновил свой вопрос ;)   -  person kulpae    schedule 04.02.2011
comment
Знайте, что это так глупо, но... двойной щелчок в Eclipse (по крайней мере, Luna и .ser в качестве расширения) показывает объект, используя по умолчанию toString()   -  person Manu    schedule 07.01.2015


Ответы (4)


Напишите несколько тестов (используя встроенную в Eclipse поддержку JUnit).

Единственный способ «заглянуть внутрь» этих файлов — использовать ObjectInputStream(FileInputStream(File)), если только вы не гуру байт-кода и не используете шестнадцатеричный редактор. Если у вас действительно есть какое-то тестирование, вам не нужно ничего «заглядывать внутрь».

person OrangeDog    schedule 03.02.2011
comment
+1 За то, что настаиваете на том, что тестирование - это правильный способ проверки сериализации. - person rfeak; 03.02.2011
comment
Спасибо, я предпочитал делать тесты, а не писать их. Ваше решение дает мне мотивацию написать тест;) - person kulpae; 04.02.2011

Хотя это не полноценный редактор, Имонн Макманус написал транскодер, который расшифровывает сериализованный BLOB-объект в удобочитаемую форму. http://weblogs.java.net/blog/2007/06/12/disassembling-serialized-java-objects

Если важны бинарная совместимость и производительность, самое время обратить внимание на Externalizable вместо Serializable.

person Ron    schedule 04.02.2011
comment
В статье мертвая ссылка для скачивания. Но источник можно найти по адресу github.com/frohoff/serialysis. - person Vadzim; 11.03.2016

Это не «независимый» ответ, а просто расширение ответа OrangeDog.

"Напишите несколько тестов (используя встроенную в Eclipse поддержку JUnit)."

Если вы хотите протестировать сериализацию, напишите тесты, которые делают следующее:

  1. Сериализация одного объекта в файл.
  2. Десериализовать в другой объект из того же файла.
  3. Сравните оба объекта, чтобы увидеть, что десериализованный объект содержит все значения, которые должны были быть сериализованы (т.е. убедитесь, что "все необходимые атрибуты были записаны").
person DwB    schedule 03.02.2011

Напишите класс, который загружает файл и десериализует объект. Затем используйте представление отладки Eclipse для просмотра объекта (путем установки точки останова).

person dogbane    schedule 03.02.2011