Saltar la navegación

5.5.- Acceso aleatorio.

Fichas en un archivador.
Ministerio de Educación y FP (CC BY-NC)

A veces no necesitamos leer un fichero de principio a fin, sino acceder al fichero como si fuera una base de datos, donde se accede a un registro concreto del fichero. Java proporciona la clase RandomAccessFile para este tipo de entrada/salida.

La clase RandomAccessFile permite utilizar un fichero de acceso aleatorio en el que el programador define el formato de los registros.

RandomAccessFile objFile = new RandomAccessFile( ruta, modo );

Donde ruta es la dirección física en el sistema de archivos y modo puede ser:

  • "r" para sólo lectura.
  • "rw" para lectura y escritura.

La clase RandomAccessFile implementa los interfaces DataInput y DataOutput. Para abrir un archivo en modo lectura haríamos:

RandomAccessFile in = new RandomAccessFile(“input.dat”, “r”);

Para abrirlo en modo lectura y escritura:

RandomAccessFile inOut = new RandomAccessFile(“input.dat”, “rw”);

Esta clase permite leer y escribir sobre el fichero, no se necesitan dos clases diferentes.

Hay que especificar el modo de acceso al construir un objeto de esta clase: sólo lectura o lectura/escritura.

Dispone de métodos específicos de desplazamiento como seek y skipBytes para poder moverse de un registro a otro del fichero, o posicionarse directamente en una posición concreta del fichero.

No está basada en el concepto de flujos o streams.

En el siguiente enlace tienes información general sobre el uso de ficheros de acceso secuencial en Java. Introduce los métodos más utilizados para el uso de este tipo de ficheros y además contiene tres ejemplos muy útiles y didácticos.

Uso de ficheros de acceso aleatorio

Autoevaluación

Indica si es verdadera o es falsa la siguiente afirmación:

Pregunta 1

Para decirle el modo de lectura y escritura a un objeto RandomAccessFile debemos pasar como parámetro "rw". ¿Verdadero o Falso?