La aplicacion es de lo mas sencilla posible, consta de un archivo de texto en el cual guardo un par de strings separados por un tab. La parte de alta y listado la tengo bien, la parte de eliminacion de registros me falta extraer el string de autor para compararlo con el ingresado y de esa forma eliminarlo.
EL inconveniente lo tengo en la funcion eliminarDisco.
Posteo el codigo que tengo.
Código PHP:
import java.io.*;
public class disqueria {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int resultado = 0;
int num1 = 0;
do {
num1 = menuListar();
switch(num1) {
case 1:
resultado = agregarAutor();
break;
case 2:
resultado = listarDiscos();
break;
case 3:
resultado = buscarDisco();
break;
case 4:
resultado = buscarDisco();
break;
case 5:
System.out.println("Ha abandonado la aplicacion con exito!");
System.exit(1);
break;
}
}while(num1 != 5);
}
public static int menuListar() {
int i = 0;
int num1 = 0;
String inputa = "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\t\t\t\tDISQUERIA");
System.out.println("1 - Agregar Disco.");
System.out.println("2 - Listar Discos.");
System.out.println("3 - Buscar Disco.");
System.out.println("4 - Eliminar Disco.");
System.out.println("5 - Salir.");
try {
do {
i = 0;
System.out.print("\n\nIngrese opcion:");
inputa = stdin.readLine();
num1 = Integer.parseInt(inputa);
if(num1 < 1 || num1 > 5) {
System.out.println("Debe ingresar un codigo correcto!!!");
i = 1;
}
}while(i == 1);
} catch (Exception e) {
System.out.println("Se ha producido un error!!!");
System.exit(1);
}
return num1;
}
public static int agregarAutor() {
String string = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
int i = 1;
int num1 = 0;
String inputa = "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
// ACA VA LA PARTE QUE SE AGREGA EL REGISTRO
try
{
FileWriter fichero = new FileWriter("disqueria.txt",true);
PrintWriter pw = new PrintWriter(fichero);
do {
i = 0;
System.out.print("Ingrese el autor:");
string = reader.readLine();
System.out.print("Ingrese el titulo del disco:");
string += "\t";
string += reader.readLine();
pw.println(string);
System.out.print("\n\nDesea agregar otro(1:si|0:no)?:");
inputa = stdin.readLine();
num1 = Integer.parseInt(inputa);
if(num1 != 0 && num1 != 1) {
System.out.println("Debe ingresar un codigo correcto!!!");
System.out.print("\n\nDesea agregar otro(1:si|0:no)?:");
inputa = stdin.readLine();
num1 = Integer.parseInt(inputa);
}
if(num1 == 1) {
i = 1;
} else {
i = 0;
}
} while(i == 1);
pw.close();
} catch (Exception e)
{
e.printStackTrace();
}
return 0;
}
public static int listarDiscos() {
File archivo = null;
FileReader fr = null;
//ACA VA LA PARTE QUE SE LISTAN TODOS LOS DISCOS
try {
archivo = new File ("disqueria.txt");
String linea;
fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
System.out.println("AUTOR\tDISCO");
while((linea = br.readLine())!= null)
System.out.println(linea);
fr.close();
}
catch(IOException e){
System.out.println(e);
}
return 0;
}
public static int eliminarDisco() {
String string[] = {};
String nombre = "";
String autor = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
File archivo = null;
FileReader fr = null;
boolean ok = false;
int i = 0;
try
{
System.out.print("Ingrese el nombre del autor a eliminar:");
nombre = reader.readLine();
archivo = new File ("disqueria.txt");
String linea;
fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
while((linea = br.readLine())!= null) {
ok = nombre.equalsIgnoreCase(autor);
if(ok) {
string[i] = linea;
}
i++;
}
fr.close();
guardarRegistros(string);
}
catch(Exception e){}
// ACA VA LA PARTE QUE LEE DEL ARCHIVO Y ELIMINA SI ENCONTRO
return 0;
}
public static int buscarDisco() {
String string = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
try
{
System.out.print("Ingrese el nombre del autor a buscar:");
string = reader.readLine();
}
catch(Exception e){}
// ACA VA LA PARTE QUE LEE DEL ARCHIVO Y MUESTRA SI ENCONTRO
return 0;
}
public static void guardarRegistros(String reg[]) {
int i = 0;
int cant = reg.length;
try
{
FileWriter fichero = new FileWriter("disqueria.txt");
PrintWriter pw = new PrintWriter(fichero);
while(i < cant) {
pw.println(reg[i]);
i++;
}
pw.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}