Persistencia - Serialización de Objetos
- Un objeto se dice persistente cuando es almacenado en un archivo u otro medio permanente. Un programa puede grabar objetos persistentes y luego recuperarlos en un tiempo posterior.
- Serialización en general es el proceso de convertir un objeto en una secuencia de bytes. Entonces al serializar un objeto podre hacerlo persistente.
- Para que un objeto se pueda convertir a una secuencia de bytes, este debe ser serializable
- En java para que un objeto sea serializable basta con que implemente la interfaz Serializable.
Interfaz
Serializable (java.io)
- Convierte un objeto que implemente el interfaz Serializable en una secuencia de bytes que puede restablecerse completamente en el objeto original INDEPENDIENTEMENTE de la plataforma donde se haya creado.
- Útil para implementar “persistencia” de objetos.
- El interfaz no tiene métodos sirve sólo para identificar la semántica de que es serializable.
- Cualquier subclase de una clase serializable también lo es.
- Este proceso no solo salva una imagen del objeto sino que también, de manera recursiva, guarda todas las referencias que contiene dicho objeto.
Para serializar un objeto
- Crear algún objeto de clase OutputStream y encapsularlo en un objeto ObjectOutputStream invocando a writeObject()el objeto se serializa y se envía al OutputStream
- Si la clase no implementa la interfaz Serializable se lanza la excepción NotSerializableException.
- Marcar con transient los atributos que no se serializan.
Para des-serializar un objeto
- Encapsula un objeto InputStream y encapsularlo en un objeto ObjectInputStream invocando a readObject()el objeto se des-serializa y se devuelve una referencia al objeto recuperado.
Esta pequeña aplicación
implementa un ArrayList donde almacenaremos nuestros objetos, luego después de
validarse que no sean repetidos se procederán a serializar y ser guardados en
un archivo .bin, ademas permitira odenar el Arreglo entre otras cosas.
Imágenes de la aplicación:
Link de la aplicación: http://adf.ly/YOITa
Mmmmm java es un buen lenguaje thank
ResponderEliminarSaludos. Actualmente hago inserciones a la base de datos desde un aplicativo java y no tengo necesidad de colocar a mi entidades ".. implements Serializable". Quisiera saber porque. Gracias.
ResponderEliminarEn este ejemplo no estoy usando base de datos, si no un archivo serializable de extension .bin....que a diferencia de un txt, esta como encriptado
Eliminar