2011-02-03 11 views
13

Estoy serializando mis objetos con ObjectOutputStream(FileOutputStream(File)) y deserializándolos con el InputStreams análogo. ¿Hay alguna manera de mirar dentro de estos archivos serializados (preferiblemente en eclipse), para poder verificar si se escribieron todos los atributos necesarios?¿Eclipse tiene un editor/visor para archivos serializados de Java?

edición: Google búsqueda fue negativo

+0

Creo que te refieres al revés. – OrangeDog

+0

gracias, he actualizado mi pregunta;) – kulpae

+0

Sepa esto es tan estúpido pero ... haga doble clic en Eclipse (al menos Luna y .ser como extensión) muestre el objeto usando por defecto toString() – Manu

Respuesta

5

escribir algunas pruebas (usando Eclipse de soporte incorporado JUnit).

La única manera de "mirar dentro" de estos archivos es usar ObjectInputStream(FileInputStream(File)), a menos que sea un bytecode guru y use un editor hexadecimal. Si realmente tiene algunas pruebas, no hay necesidad de "mirar dentro" de nada.

+0

+1 Por insistir en que las pruebas son la forma correcta de verificar la serialización. – rfeak

+0

Gracias, tendí a "hacer" pruebas, en lugar de escribirlas. Su solución me da motivación para escribir una prueba;) – kulpae

1

Escriba una clase que cargue el archivo y deserialice el objeto. Luego use la Vista de depuración de Eclipse para explorar el objeto (estableciendo un punto de interrupción).

2

Esta no es una respuesta "de pie", solo una expansión de la respuesta de OrangeDog.

"escribir algunas pruebas (utilizando una función de apoyo JUnit de Eclipse)." Las pruebas

Si desea probar la serialización, a continuación, escribir que haga lo siguiente:

  1. Serialize un objeto a un archivo.
  2. Deserializar a un objeto diferente del mismo archivo.
  3. Compair ambos objetos a ver que el objeto deserializado contiene todos los valores que se supone que han sido serializado (es decir, asegúrese de que "todos los atributos necesarios fueron escritos").
+0

Sí, eso es lo que voy a hacer ahora, gracias;) – kulpae

4

Aunque este no es un editor de pleno derecho, Eamonn McManus ha escrito un transcodificador que descifra un blob serializado en una forma legible por humanos. http://weblogs.java.net/blog/2007/06/12/disassembling-serialized-java-objects

Si se tienen en cuenta la compatibilidad y el rendimiento binarios, este sería un buen momento para buscar Externalizable en lugar de Serializable.

+2

El artículo tiene un enlace de descarga inactivo. Pero la fuente se puede encontrar en https://github.com/frohoff/serialysis. – Vadzim

Cuestiones relacionadas