Streams y Serialización

En este ejercicio, aprenderás a manejar **Streams y Serialización en Java** para gestionar flujos de datos y convertir objetos en secuencias de bytes. Implementarás la lectura y escritura de archivos utilizando **ObjectOutputStream** y **ObjectInputStream**, permitiendo el almacenamiento y recuperación de datos de manera eficiente. Este concepto es esencial para el manejo de persistencia en aplicaciones Java.

Tema

Manejo de Archivos y Excepciones Avanzadas

Ejercicio Java

En este ejercicio, crearás un programa en Java que demuestre el uso de **Streams y Serialización** para guardar y recuperar objetos de un archivo. Implementarás una clase Persona que será serializable, permitiendo almacenar sus datos en un archivo mediante **ObjectOutputStream** y recuperarlos con **ObjectInputStream**. Esta técnica es fundamental para la persistencia de datos en aplicaciones Java.

Instrucciones:

  1. Crea una clase llamada Persona con atributos como nombre y edad, implementando la interfaz Serializable.
  2. Implementa un método para **guardar un objeto** de tipo Persona en un archivo usando **ObjectOutputStream**.
  3. Implementa otro método para **leer el objeto** desde el archivo utilizando **ObjectInputStream**.
  4. En el método main, crea un objeto Persona, guárdalo en un archivo y luego recupéralo para mostrar sus datos.

Este ejercicio te ayudará a comprender cómo **Streams y Serialización** permiten el manejo eficiente de datos en aplicaciones Java, facilitando el almacenamiento y la recuperación de información en archivos.


import java.io.*;

// Clase Persona que implementa Serializable
class Persona implements Serializable {
    private static final long serialVersionUID = 1L;
    private String nombre;
    private int edad;

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    public void mostrarDatos() {
        System.out.println("Nombre: " + nombre + ", Edad: " + edad);
    }
}

public class SerializacionDemo {
    public static void main(String[] args) {
        String archivo = "persona.dat";

        // Crear un objeto Persona
        Persona persona = new Persona("Juan", 30);

        // Serializar el objeto y guardarlo en un archivo
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(archivo))) {
            out.writeObject(persona);
            System.out.println("Objeto Persona serializado correctamente.");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // Deserializar el objeto y leerlo del archivo
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(archivo))) {
            Persona personaLeida = (Persona) in.readObject();
            System.out.println("Objeto Persona deserializado:");
            personaLeida.mostrarDatos();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

 Salida:

Objeto Persona serializado correctamente.
Objeto Persona deserializado:
Nombre: Juan, Edad: 30

Este programa demuestra cómo trabajar con archivos en Java utilizando las clases File, FileReader y FileWriter. Primero, se crea un archivo llamado ejemplo.txt, se escribe en él utilizando FileWriter, y luego se lee el contenido con FileReader. Al ejecutar el programa, el contenido del archivo se muestra en la consola, permitiendo comprender cómo realizar operaciones básicas de entrada/salida con archivos en Java.


 Comparte este ejercicio JAVA