Foros del Web » Programación para mayores de 30 ;) » Java »

eliminar registro de un fichero

Estas en el tema de eliminar registro de un fichero en el foro de Java en Foros del Web. Tengo que hacer este ejercicio: "Realiza un programa java que te permita eliminar un departamento. El programa recibe desde la línea de comandos el número ...
  #1 (permalink)  
Antiguo 18/10/2015, 15:23
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 1 mes
Puntos: 2
eliminar registro de un fichero

Tengo que hacer este ejercicio:

"Realiza un programa java que te permita eliminar un departamento. El programa recibe desde la línea de comandos el número de departamento a eliminar. Si el departamento no existe , visualiza un mensaje indicándolo. Visualiza también el número total de departamentos que existen en el fichero"

vale yo había pensando en plantear la lógica así:

1º recorrer todo el fichero en busca de mi id
2º marcarlo
3º copiar todos los registros del fichero menos el que está marcado
4º renombrar el fichero
5º borrar el fichero de origen

pero esto lo tengo que realizar con ramdon access file, entonces, ¿Como me posiciono? porqeu si supiera los bytes ningún problema, pero no los se.

¿como lo hago?
  #2 (permalink)  
Antiguo 19/10/2015, 04:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: eliminar registro de un fichero

Hola:

Si tienes que hacerlo con RandomAccessFile, lo lógico (sencillo) es que todos los departamentos ocupen un número fijo de bytes en el fichero. Imagina por simplificar que ocupa 100 bytes cada departamento. De esta forma, es fácil posicionarse, el primer departamento está en el byte 0, el segundo en el 100, el tercero en el 200, etc.

Si no ocupan un número fijo de bytes, no puedes hacerlo con RandomAccessFile de forma fácil. Tienes o bien que recorrer todo el fichero, o bien llevar un segundo fichero como índice. Este segundo fichero tendría algo como "el departamento 1 está en el byte 0, el departamento 2 está en el byte 122, el departamento 3 está en el byte 212 ..." pero puedes hacerte a la idea de que mantener este fichero complica bastante.

Si no ocupan un número fijo de bytes, una alternativa que puede simplificar es obligar a que lo hagan. Por ejemplo, puedes forzar que el nombre de departamento tenga 20 caracteres, rellenando con espacios los que falten, o eliminando los que sobren, y así con todos los posibles datos que tengas de cada departamento.


Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: fichero, programa, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:26.