Está en la página 1de 5

/*

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

También podría gustarte