Java - Ayuda con esta BREVE practica para aprobar!!!

 
Vista:

Ayuda con esta BREVE practica para aprobar!!!

Publicado por EstudianteJodidio (1 intervención) el 28/11/2019 22:09:04
Se dispone de un fichero de texto llamado cuentas.txt con las cuentas de una sucursal bancaria de tal forma que en cada línea del fichero esta la información de cada cuenta separada por ;. La información que contiene es:
Código de cuenta Valor entero (ocupara 4 bytes).
Nombre de la persona propietaria de la cuenta. Máximo 30 caracteres.
Saldo de la cuenta. Valor entero (ocupara 4 bytes).
Realizar un programa que cree un fichero cuentas.dat a partir de los datos contenidos en el fichero cuentas.txt.

A continuación se pedirá el nombre de un fichero de incidencias (ejemplo: inciden1.txt) si el fichero no existe dará un error y si el fichero existe se deberá realizar lo siguiente de pendiendo del contenido del primer carácter de la línea, estos podrán ser:
‘A’: Alta de nueva cuenta. Se insertará en el fichero de cuentas.dat una nueva cuenta, con los datos existentes a continuación de la línea.
‘B’ realizará una baja de la cuenta marcando un -1 en el número de cuenta existente a continuación de la línea.
‘S’ realizará una modificación del saldo añadiendo la cantidad que hay a continuación en la línea.
‘N’ realizará una modificación del nombre del propietario de la cuenta con el nombre que hay a continuación en la línea.

Ejemplo de incidencias:

A;27;MIHAI DOBRE;0;
B;10;
S;7;340;
S;9;-20;
N;4;CARLOS PEREZ;

Opcional, crear un fichero de texto de salida (salinciden1.txt) donde diga el número de altas realizadas, el número de saldos modificados, el número de nombre modificados y el número de cuentas borradas.


Lo he empezado pero no se por donde seguir, os dejo el código de lo que llevo por si queréis aconsejar.
Aquí os dejo una clase:

public static void main(String[] args) throws IOException {
File fich = new File("C:\\pruebas\\cuentas.txt");
//File temporal = new File("C:\\pruebas\\cuentas.dat");
RandomAccessFile escribir = new RandomAccessFile(fich,"rw");
RandomAccessFile leerfich = new RandomAccessFile(fich,"rw");

BufferedReader leerFichero = new BufferedReader(new FileReader(fich));


File incidencia = new File("C:\\pruebas\\incidencias.txt");
BufferedReader leerbuf = new BufferedReader(new FileReader(incidencia));
String linea = leerbuf.readLine();
RandomAccessFile ramAcIncidencia = new RandomAccessFile(incidencia,"rw");

while (linea != null){
char primeraLetra = (char) ramAcIncidencia.read();
if(primeraLetra == 'A'){
leerfich.seek(0);
ramAcIncidencia.seek(ramAcIncidencia.getFilePointer() + 1);
String nuevoRegistro = ramAcIncidencia.readLine();
escribir.writeChars(nuevoRegistro);
File temporal = new File("C:\\pruebas\\cuentas.dat");
temporal.createNewFile();
ObjectOutputStream OutputEscribe = new ObjectOutputStream(new FileOutputStream(temporal));
String lineFich = leerfich.readLine();

int contador1 = 0;
String[] arrayString = new String[0];
String lineaString =leerFichero.readLine() ;

while (lineFich != null){
char array[] = lineFich.toCharArray();
int ult = 0;
int contador = 0;
String resultado = "";
String numcuenta = "";
String nombre = "";
for (int i = 0; i < array.length; i++) {
if (array[i] == ';'){
ult = i;
for (int j = 0; j < ult; j++) {
resultado = resultado + array[j];
}
resultado = resultado.trim();
contador++;
if (contador == 1){
numcuenta = resultado;
}
if (contador == 2){
nombre = resultado;
}if (contador == 3){
P2_cuentas cuenta = new P2_cuentas(numcuenta,nombre,resultado);
OutputEscribe.writeObject(cuenta);
}
}
}
lineFich = leerfich.readLine();
arrayString[contador] = lineaString;
contador1++;

}
}
linea = ramAcIncidencia.readLine();
}
escribir.close();
leerfich.close();
leerbuf.close();
ramAcIncidencia.close();
}

Y aquí la otra:

public class P2_cuentas {
String numCuenta;
String nombre;
String saldo;

public P2_cuentas(String numCuenta, String nombre, String saldo) {
this.numCuenta = numCuenta;
this.nombre = nombre;
this.saldo = saldo;
}

public String getNumCuenta() {
return numCuenta;
}

public void setNumCuenta(String numCuenta) {
this.numCuenta = numCuenta;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getSaldo() {
return saldo;
}

public void setSaldo(String saldo) {
this.saldo = saldo;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder