Esta es la 2da gran duda... Si tengo una clase usuario con 3 atributos string y un int y a los string los hago que tenga la misma longitud... es decir los relleno de espacios en blanco por las dudas de que sean menores a por ejemplo 25... xq se supone que en archivos de acceso aleatorio todos los campos de un registro (strings) deben tener la misma longitud...
Puede uso el metodo grabar usuario y todo bien... busco un usuario por su legajo y todo bien... despues modifico un string buscandolo por su legajo y todo bien... es decir me tendria que volver atras cierta cantidad de bytes para despues poder volver a escribir... en este casi y como les dije... serian 154 bytes... despues que hago la modificacion y se me da por volver a buscar o usar el metodo de busqueda por legajo me tira una excepcion
java.io.EOFException
No existe un alumno con ese legajo !
at java.io.RandomAccessFile.readChar(RandomAccessFile.java:695)
at DBUsuarios.busquedaUser(DBUsuarios.java:181)
at Principal.main(Principal.java:48)
cuando antes el metodo me andaba barbaro... como tengo que modificar exitosamente el archivo ?
lo que yo hago es una onda asi...
if(usu.getLegajo()==leg)
{
flujo.seek(flujo.getFilePointer()-154)
---------
---------
vuelvo a escribir todos los datos del usuario a excepcion del que quiero modificar ya que ese supuestamente lo obtengo por haberlo pasado como paerametro al metodo...
}
espero haberme dado a entender...
Puede uso el metodo grabar usuario y todo bien... busco un usuario por su legajo y todo bien... despues modifico un string buscandolo por su legajo y todo bien... es decir me tendria que volver atras cierta cantidad de bytes para despues poder volver a escribir... en este casi y como les dije... serian 154 bytes... despues que hago la modificacion y se me da por volver a buscar o usar el metodo de busqueda por legajo me tira una excepcion
java.io.EOFException
No existe un alumno con ese legajo !
at java.io.RandomAccessFile.readChar(RandomAccessFile.java:695)
at DBUsuarios.busquedaUser(DBUsuarios.java:181)
at Principal.main(Principal.java:48)
cuando antes el metodo me andaba barbaro... como tengo que modificar exitosamente el archivo ?
lo que yo hago es una onda asi...
if(usu.getLegajo()==leg)
{
flujo.seek(flujo.getFilePointer()-154)
---------
---------
vuelvo a escribir todos los datos del usuario a excepcion del que quiero modificar ya que ese supuestamente lo obtengo por haberlo pasado como paerametro al metodo...
}
espero haberme dado a entender...