Cómo serializar un objeto en Java: 8 pasos (con imágenes)

Tabla de contenido:

Cómo serializar un objeto en Java: 8 pasos (con imágenes)
Cómo serializar un objeto en Java: 8 pasos (con imágenes)

Video: Cómo serializar un objeto en Java: 8 pasos (con imágenes)

Video: Cómo serializar un objeto en Java: 8 pasos (con imágenes)
Video: Trazos y curvas de Bézier en Inkscape 2024, Mayo
Anonim

Cuando serializas un objeto en Java, conviertes los datos en flujos de bytes que luego se vuelven a convertir en la copia de los datos originales. Si esto suena confuso, piense en la serialización en los siguientes términos. Estás trabajando en un documento y luego lo guardas en tu disco duro. Está, por así decirlo, serializando los datos para poder recuperar esa copia más adelante. La serialización hace que la transferencia de datos en redes sea mucho más fácil y eficiente.

Es importante que comprenda los conceptos básicos de Java antes de serializar un objeto. Si ha utilizado lenguajes de programación como Pascal y versiones anteriores de C, sabrá que sin la serialización de objetos, un programador tiene que crear un archivo de texto de E / S separado para almacenar y cargar datos. La serialización de objetos en Java evita la creación de este archivo de texto para almacenar datos, lo que ahorra tiempo y costos de programación. El siguiente artículo contiene los pasos para serializar un objeto en Java. El código de muestra de este artículo se utiliza por cortesía de The Java Developers Almanac 1.4.

Pasos

Serializar un objeto en Java Paso 1
Serializar un objeto en Java Paso 1

Paso 1. Abra el objeto de codificación de Java que requiere serialización o cree uno desde cero

Serializar un objeto en Java Paso 2
Serializar un objeto en Java Paso 2

Paso 2. Seleccione el objeto en Java que desea serializar

En este ejemplo, llamaremos a ese objeto "MyObject".

Serializar un objeto en Java Paso 3
Serializar un objeto en Java Paso 3

Paso 3. Habilite la serialización de objetos en Java creando la clase MyObject para implementar la interfaz java.io. Serialize

Simplemente agregue la siguiente línea de código al principio del código, reemplazando la línea "public class MyObject". La clase pública MyObject implementa java.io. Serializable

Serializar un objeto en Java Paso 4
Serializar un objeto en Java Paso 4

Paso 4. Ahora su objeto es serializable, eso significa que puede ser escrito por un flujo de salida, como este:

  • Las siguientes líneas de código ilustran cómo escribir MyObject (o cualquier objeto serializable) en un archivo o disco.

    tratar{

    // Serializar el objeto de datos en un archivo

    ObjectOutputStream out = new ObjectOutputStream (nuevo FileOutputStream ("MyObject.ser"));

    out.writeObject (objeto);

    out.close ();

    // Serializar el objeto de datos en una matriz de bytes

    ByteArrayOutputStream bos = nuevo ByteArrayOutputStream ();

    out = new ObjectOutputStream (bos);

    out.writeObject (objeto);

    out.close ();

    // Obtiene los bytes del objeto serializado

    byte buf = bos.toByteArray ();

    } captura (IOException e) {

    }

Serializar un objeto en Java Paso 5
Serializar un objeto en Java Paso 5

Paso 5. Se puede leer así:

intente {FileInputStream door = new FileInputStream ("nombre_de_archivo.sav"); Lector ObjectInputStream = nuevo ObjectInputStream (puerta); MyObject x = new MyObject (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Serializar un objeto en Java Paso 6
Serializar un objeto en Java Paso 6
Serializar un objeto en Java Paso 7
Serializar un objeto en Java Paso 7

Paso 6. Ejecute el código de objeto serializado dentro del programa Java para asegurarse de que funciona de forma eficaz (opcional)

Ejecute un archivo. Jar Java Paso 9
Ejecute un archivo. Jar Java Paso 9

Paso 7. Guarde y cierre el objeto serializado en Java

Consejos

  • Las mejoras de serialización en Java SE Development Kit 6 le permiten usar ObjectStreamClass para buscar cualquier método para manejar cualquier objeto de clase no serializable.
  • Para mejorar los tiempos de lectura y escritura en árboles de objetos grandes, use la palabra clave "transitoria" para las variables de ejemplo que no requieren serialización. Esto aumentará el rendimiento, ya que ya no estará leyendo ni escribiendo datos innecesarios en el proceso de serialización.

Advertencias

  • Java presenta una nueva versión de su kit de desarrollador casi todos los años. Las nuevas versiones incluyen actualizaciones y cambios sobre cómo se puede serializar un objeto en Java. Por lo tanto, es importante monitorear los cambios en la versión que está utilizando.
  • Al serializar objetos, no puede cifrar flujos de datos. Por lo tanto, deberá confiar en otras aplicaciones o procesos de transporte de red secundarios para proteger los datos, si es necesario.
  • Actualmente no hay ninguna opción que le permita escribir objetos en un archivo de acceso aleatorio. En su lugar, puede utilizar los flujos de salida de entrada de Byte Array como un marcador de posición desde el cual leer y escribir los objetos. Sin embargo, asegúrese de que todo el objeto esté en la secuencia Byte Array o el proceso fallará.

Recomendado: