* To change this template, choose Tools | Templates
* and open the template in the editor. */
package ejercicio7menuarchivos; import java.util.Scanner; import java.io.*; /** * * @author Alumno */ public class Main {
/** * @param args the command line arguments */ public static void main(String[] args)throws IOException { Scanner leer= new Scanner(System.in); String nombre, apellidos, direccion, nombre_a_buscar, nombre_a_eliminar, nombre_a_modificar; int c=0, edad, opc; boolean continuar=false; DataOutputStream escritura=null; DataInputStream lectura=null; File origen = new File("datos.txt"); File destino = new File("auxiliar.txt"); do{ do{ System.out.println("1.- Escribir registro "); System.out.println("2.- Leer todos los registros"); System.out.println("3.- Buscar registro"); System.out.println("4.- Eliminar registro"); System.out.println("5.- Modificar registro"); System.out.println("6.- Salir"); System.out.println("Que opcion deseas"); opc=leer.nextInt(); if(opc<1 || opc>6) System.out.println("Opcin invlida, debe estar entre 1 y 4..."); }while(opc<1 || opc>6); switch(opc){ case 1: System.out.println("Dame el nombre: "); nombre = leer.next(); System.out.println("Dame los apellidos: "); apellidos = leer.next(); System.out.println("Dame la edad: "); edad = leer.nextInt(); System.out.println("Dame la direccin: "); direccion = leer.next(); try{ escritura = new DataOutputStream(new FileOutputStream(origen,true)); escritura.writeUTF(nombre); escritura.writeUTF(apellidos); escritura.writeInt(edad); escritura.writeUTF(direccion); escritura.close(); }catch(IOException ioe){System.out.println("La ruta no es vlida...");} break; case 2: try{ lectura = new DataInputStream(new FileInputStream(origen)); while(true){ c++; nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); System.out.println(c+".- Nombre: "+nombre+"\tApellidos: "+apellidos+"\tEdad: "+edad+"\tDireccin: "+direccion); } }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion* System.out.println("El archivo no se encuentra...");*/} catch(EOFException eofe){/*codigo de error de la excepcion* System.out.println("No hay mas datos...");*/} c=0; System.out.println("\n"); lectura.close(); break; case 3: System.out.println("Dame el nombre a buscar"); nombre_a_buscar = leer.next(); try{ lectura = new DataInputStream(new FileInputStream(origen)); while(true){ c++; nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); if(nombre.equals(nombre_a_buscar)){ System.out.println("Posicin: "+c+"\t Nombre: "+nombre+"\tApellidos: "+apellidos+"\tEdad: "+edad+"\tDireccin: "+direccion); break; }
} }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion*/ System.out.println("El archivo no se encuentra...");} catch(EOFException eofe){/*codigo de error de la excepcion*/System.out.println("No existe el registro en el archivo...");} c=0; lectura.close(); break; case 4: System.out.println("Dame el nombre a eliminar"); nombre_a_eliminar = leer.next(); try{ lectura = new DataInputStream(new FileInputStream(origen)); while(true){ nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); if(nombre.equals(nombre_a_eliminar)){ continuar=true; break; } } }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion*/ System.out.println("El archivo no se encuentra...");} catch(EOFException eofe){/*codigo de error de la excepcion*/System.out.println("No existe el registro en el archivo...");} lectura.close(); if(continuar==true){ try{ lectura = new DataInputStream(new FileInputStream(origen)); escritura = new DataOutputStream(new FileOutputStream(destino,true)); while(true){ nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); if(!nombre.equals(nombre_a_eliminar)){ escritura.writeUTF(nombre); escritura.writeUTF(apellidos); escritura.writeInt(edad); escritura.writeUTF(direccion); } } }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion*/ System.out.println("El archivo no se encuentra...");} catch(EOFException eofe){/*codigo de error de la excepcion*/System.out.println("El registro ha sido eliminado...");} lectura.close(); escritura.close(); origen.delete(); origen=new File("c:/datos.txt"); destino.renameTo(origen); } break; case 5: System.out.println("Dame el nombre a modificar"); nombre_a_modificar = leer.next(); try{ lectura = new DataInputStream(new FileInputStream(origen)); while(true){ nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); if(nombre.equals(nombre_a_modificar)){ continuar=true; break; } } }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion*/ System.out.println("El archivo no se encuentra...");} catch(EOFException eofe){/*codigo de error de la excepcion*/System.out.println("No existe el registro en el archivo...");} lectura.close(); if(continuar==true){ try{ lectura = new DataInputStream(new FileInputStream(origen)); escritura = new DataOutputStream(new FileOutputStream(destino,true)); while(true){ nombre=lectura.readUTF(); apellidos=lectura.readUTF(); edad=lectura.readInt(); direccion=lectura.readUTF(); if(!nombre.equals(nombre_a_modificar)){ escritura.writeUTF(nombre); escritura.writeUTF(apellidos); escritura.writeInt(edad); escritura.writeUTF(direccion); } else{ System.out.println("\t Nombre: "+nombre+"\tApellidos: "+apellidos+"\tEdad: "+edad+"\tDireccin: "+direccion); System.out.println("Dame el nuevo nombre: "); nombre = leer.next(); System.out.println("Dame los nuevos apellidos: "); apellidos = leer.next(); System.out.println("Dame la nueva edad: "); edad = leer.nextInt(); System.out.println("Dame la nueva direccin: "); direccion = leer.next(); escritura.writeUTF(nombre); escritura.writeUTF(apellidos); escritura.writeInt(edad); escritura.writeUTF(direccion); } } }catch(FileNotFoundException fnfe){/*codigo de error de la excepcion*/ System.out.println("El archivo no se encuentra...");} catch(EOFException eofe){/*codigo de error de la excepcion*/System.out.println("El registro ha sido modificado...");} lectura.close(); escritura.close(); origen.delete(); origen=new File("c:/datos.txt"); destino.renameTo(origen); } break; case 6: System.out.println("Programa finalizado..."); } }while(opc!=6); } }
Lección 14 y 15 (Entrada de Datos Con La Clase Scanner y La Clase JOptionPane, Transformar Datos Numéricos Tipo String a Int y Double Con El Método ParseInt y ParseDouble, Trabajar Con 2 Decimales Printf)