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.