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!
… … …
¡Coméntanos que te ha parecido este artículo al final de la página!
TÚ OPINIÓN IMPORTA
![](https://i0.wp.com/academiasanroque.com/wp-content/uploads/2024/05/Diseno-sin-titulo-2.jpg?resize=1080%2C1080&ssl=1)
NUESTRAS ÚLTIMAS PUBLICACIONES
- Fundamentos Teóricos de PHP, MySQL, phpMyAdmin, Métodos GET y POST, y el Concepto de CRUD
- Introducción a PHP, MySQL, phpMyAdmin y Cómo Crear un CRUD en PHP para Principiantes
- Teoría y Práctica: PHP, MySQL, phpMyAdmin y Cómo Crear un CRUD en PHP
- Título del Artículo: Cómo Crear un Formulario en PHP con PDO para Insertar Datos en una Base de Datos
- Título del Artículo: Cómo Crear un Formulario en PHP para Insertar Datos en una Base de Datos
- Crear un Formulario en PHP para Resolver Ecuaciones de Segundo Grado
- Los tartesos.
- La ciencias y grandes personajes.
- Cómo Activar las Teclas de Función (F1, F2, F3, etc.) desde la BIOS en un Asus ZenBook UX363EA
Contenido restringido
Comments are closed