COMPARTE ESTE ARTÍCULO

Trabajar con excepciones y ficheros es una parte esencial de la programación en Java. A continuación, te presento una serie de ejercicios que te ayudarán a mejorar tus habilidades en el manejo de excepciones y la manipulación de ficheros de texto y binarios.

Ejercicio 1: Manejo de Excepciones

Escribe un programa que lea dos números enteros desde la consola e intente dividir el primero por el segundo. Maneja la excepción en caso de que el segundo número sea cero.

import java.util.Scanner;

public class ManejoExcepciones {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            System.out.print("Ingrese el primer número: ");
            int num1 = scanner.nextInt();

            System.out.print("Ingrese el segundo número: ");
            int num2 = scanner.nextInt();

            int resultado = num1 / num2;
            System.out.println("El resultado de la división es: " + resultado);
        } catch (ArithmeticException e) {
            System.out.println("Error: División por cero no permitida.");
        } catch (Exception e) {
            System.out.println("Error: Entrada no válida.");
        } finally {
            scanner.close();
        }
    }
}

Ejercicio 2: Lectura y Escritura de Ficheros de Texto

Escribe un programa que lea el contenido de un fichero de texto llamado entrada.txt y escriba su contenido en un fichero de texto llamado salida.txt.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FicherosTexto {
    public static void main(String[] args) {
        String inputFilePath = "entrada.txt";
        String outputFilePath = "salida.txt";

        try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));
             BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath))) {

            String line;
            while ((line = reader.readLine()) != null) {
                writer.write(line);
                writer.newLine();
            }

            System.out.println("El contenido ha sido copiado de " + inputFilePath + " a " + outputFilePath);
        } catch (IOException e) {
            System.out.println("Error al manejar los ficheros: " + e.getMessage());
        }
    }
}

Ejercicio 3: Lectura y Escritura de Ficheros Binarios

Escribe un programa que lea un fichero binario llamado entrada.bin y copie su contenido en otro fichero binario llamado salida.bin.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FicherosBinarios {
    public static void main(String[] args) {
        String inputFilePath = "entrada.bin";
        String outputFilePath = "salida.bin";

        try (FileInputStream inputStream = new FileInputStream(inputFilePath);
             FileOutputStream outputStream = new FileOutputStream(outputFilePath)) {

            byte[] buffer = new byte[1024];
            int bytesRead;

            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            System.out.println("El contenido ha sido copiado de " + inputFilePath + " a " + outputFilePath);
        } catch (IOException e) {
            System.out.println("Error al manejar los ficheros: " + e.getMessage());
        }
    }
}

Ejercicio 4: Serialización y Deserialización de Objetos

Escribe un programa que serialice un objeto de la clase Persona a un fichero binario llamado persona.bin y luego lo deserialice.

import java.io.*;

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;
    }

    @Override
    public String toString() {
        return "Persona [nombre=" + nombre + ", edad=" + edad + "]";
    }
}

public class SerializacionPersona {
    public static void main(String[] args) {
        Persona persona = new Persona("Juan Perez", 30);
        String filePath = "persona.bin";

        // Serializar el objeto
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) {
            oos.writeObject(persona);
            System.out.println("Objeto serializado a " + filePath);
        } catch (IOException e) {
            System.out.println("Error al serializar el objeto: " + e.getMessage());
        }

        // Deserializar el objeto
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
            Persona deserializada = (Persona) ois.readObject();
            System.out.println("Objeto deserializado: " + deserializada);
        } catch (IOException | ClassNotFoundException e) {
            System.out.println("Error al deserializar el objeto: " + e.getMessage());
        }
    }
}

Ejercicio 5: Manejo de Excepciones Personalizadas

Crea una excepción personalizada llamada SaldoInsuficienteException y úsala en una clase CuentaBancaria para manejar situaciones donde el saldo es insuficiente para realizar una retirada.

class SaldoInsuficienteException extends Exception {
    public SaldoInsuficienteException(String mensaje) {
        super(mensaje);
    }
}

class CuentaBancaria {
    private String numeroCuenta;
    private double saldo;

    public CuentaBancaria(String numeroCuenta, double saldo) {
        this.numeroCuenta = numeroCuenta;
        this.saldo = saldo;
    }

    public void depositar(double cantidad) {
        saldo += cantidad;
    }

    public void retirar(double cantidad) throws SaldoInsuficienteException {
        if (cantidad > saldo) {
            throw new SaldoInsuficienteException("Saldo insuficiente para realizar la retirada.");
        }
        saldo -= cantidad;
    }

    public double getSaldo() {
        return saldo;
    }
}

public class TestCuentaBancaria {
    public static void main(String[] args) {
        CuentaBancaria cuenta = new CuentaBancaria("1234567890", 500);

        try {
            cuenta.retirar(600);
        } catch (SaldoInsuficienteException e) {
            System.out.println(e.getMessage());
        }

        System.out.println("Saldo actual: " + cuenta.getSaldo());
    }
}

Conclusión

Estos ejercicios te proporcionarán una base sólida para trabajar con el tratamiento de excepciones y la manipulación de ficheros de texto y binarios en Java. Practicar estos conceptos es esencial para desarrollar tus habilidades de programación y te permitirá abordar problemas más complejos en el futuro. ¡Sigue practicando y explorando más sobre Java para convertirte en un programador más competente!


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

INSTAGRAM

TIKTOK


 …Y PRONTO MUCHAS MÁS

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO