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

Dudas lectura de datos con RandomAccessFile

Estas en el tema de Dudas lectura de datos con RandomAccessFile en el foro de Java en Foros del Web. Hola a todos. De antemano, doy las gracias por la ayuda. Expongo mi problema: Tengo que diseñar y hacer una aplicación que gestiones Clientes. Es ...
  #1 (permalink)  
Antiguo 17/02/2012, 04:36
 
Fecha de Ingreso: febrero-2012
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Dudas lectura de datos con RandomAccessFile

Hola a todos.

De antemano, doy las gracias por la ayuda.

Expongo mi problema:
Tengo que diseñar y hacer una aplicación que gestiones Clientes. Es decir, Crear Cliente, Listar Cliente y Eliminar Cliente.

Al crear el cliente, guardo en un fichero los datos como Nombre, Apellidos, etc.. además, añado, al principio, CodigoCliente y NumeroCliente.

Y ahora viene mi problema..: ¿Como hago para acceder a un Cliente determinado para listarlo usando como parámetro el CodigoCliente?

Pensé que para este tipo de lectura, RandomAccessFile, era lo mas apropiado, pero por el momento no consigo buenos resultados..

Muchas gracias.
  #2 (permalink)  
Antiguo 17/02/2012, 09:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 5 meses
Puntos: 454
Respuesta: Dudas lectura de datos con RandomAccessFile

Hola:

RandomAccessFile te permite acceder directamente a cualquier posición del fichero indicando el número de byte hasta esa posición.

Tendrías que saber cuánto ocupa en bytes un cliente en el fichero y si ese número de bytes es N, entonces con i*N puedes acceder al cliente i que hay en el fichero.

Si quieres acceder por el codigoCliente, tienes que tener alguna manera de relacionar ese código cliente con la posición que ocupa en el fichero. No sé si tienes libertad para elegir el codigo cliente que tú quieras, pero si código cliente son consecutivos 0,1,2,3.... y los pones en 0*N, 1*N, 2*N, en el fichero, el mecanismo es fácil.

En cualquier caso, es mejor una base de datos. Puedes usar algo como apache derby o H2 que son bases de datos puramente en java que no necesitan instalación, son sólo un jar que debes llevar con tu aplicación. Si la aplicación va a ser un poco en serio, incluso sería mejor que dieras opción a una base de datos más seria (oracle, mysql, postgresql,...)

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 17/02/2012, 12:03
 
Fecha de Ingreso: febrero-2012
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Dudas lectura de datos con RandomAccessFile

Hola! Muchas gracias por contestar, chuidiang.

Ese es el problema que me planteo, como saber el espacio que ocupa si cada cliente
tiene distintos el nombre y apellidos, dirección, etc...
Así que supongo que también tendrá distinto el espacio que ocupará, en bytes, en el fichero, no? ¿como poder saber eso de antemano?

Trato de pensar en una solución sin tener que buscar secuencialmente..y, salvo cualquier sugerencia mejor, se me ocurre grabar en un fichero "temporal" el cliente, obtener la longitud, para luego grabarlo en el fichero original junto con los datos..quizás sea enrevesado pero podría funcionar..así tan solo tendría que leer la ultima línea del fichero para saber donde esta el cliente tal y luego posicionarme en ese sitio, ¿no?

En principio va a ser así, clientes con código consecutivo. Y al ser un ejercicio de prácticas sobre ficheros, no me planteo usar base de datos (pero me apunto tu recomendación ya que también necesito practicarlo).

Muchas gracias.

Etiquetas: dudas, lectura
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 04:04.