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)


Напишете някои тестове (използвайки вградената поддръжка на JUnit на Eclipse).

Единственият начин да "погледнете отвътре" тези файлове е да използвате ObjectInputStream(FileInputStream(File)), освен ако не сте гуру на байт код и използвате шестнадесетичен редактор. Ако наистина имате някакво тестване, няма нужда да "поглеждате вътре" каквото и да било.

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

Въпреки че това не е пълноценен редактор, Eamonn McManus е написал транскодер, който дешифрира сериализирано петно ​​в четима от човека форма. 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.

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

Ако искате да тествате сериализацията, напишете тестове, които правят следното:

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

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

person dogbane    schedule 03.02.2011