/* * 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("Opción inválida, 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 dirección: "); 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 válida...");} 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+"\tDirección: "+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("Posición: "+c+"\t Nombre: "+nombre+"\tApellidos: "+apellidos+"\tEdad: "+edad+"\tDirección: "+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+"\tDirección: "+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 dirección: "); 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); } }