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
- 🛠️ Cómo crear un plugin en WordPress desde cero (Guía paso a paso)
- 📶 Cómo Crear un Hotspot WiFi en Windows 10 (Paso a Paso)
- 🕵️♂️ Aprende a usar Wireshark: Filtrar tráfico por IP, URL, MAC y más
- 🧩 Subconsultas, HAVING y Subconsultas Binomiales en MySQL: Guía Completa
- 🔍 Principales Comandos y Subconsultas en MySQL: SUM, AVG, MOD y Más
- 26 de marzo CERRADOS.
- ¡Aprende y Refuerza tus Consultas SQL en la Base de Datos de Alumnos!
- La Academia SanRoque lanza su primer podcast de historia: Un viaje a la España medieval
- OFERTA ESPECIAL PARA EL DÍA DEL PADRE.
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed