17/05/2014, 14:15
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes Puntos: 454 | |
Respuesta: Lectura aleatoria de un fichero java Como te he comantado, si las líneas no son de igual longitud, no puedes acceder directamente al registro sin leer los anteriores primero. Debería leer consecutivamente y tirar todas las líneas hasta llegar a la que te interese y guardarla.
Si tienes control del fichero, puedes rellenar cada línea artificialmente con espacios al final hasta que tengan una longitud fija, todas igual. Entonces con RandomAccessFile sí podrías acceder, tanto lectura como escritura, a un registro concreto de golpe, sin leer todos los anteriores.
Sin rellenar con espacios en blanco, existen mecanismos más complejos, como mantener un segundo fichero de índice, pero no merece la pena salvo que vayas a andar haciendo muchos accesos aleatorios muy seguidos. La idea sería leer el fichero entero una vez, guardando en otro fichero o en memoria en qué byte exacto empieza cada línea. De esta forma, con RandomAccessFile y sabiendo la posición del byte exacto de empiece de la línea puedes acceder a ella directamente. Si este fuera el caso, deberías plantearte el uso de una base de datos.
Se bueno. |