La clase RandomAccessFile implementa los interfaces DataInput y DataOutput y por lo tanto puede usarse para leer y escribir. RandomAccessFile es similar a FileInputStream y FileOutputStream en que especificamos un fichero del sistema de ficheros nativo para abrirlo cuando lo creamos. Podemos hacer esto con un nombre de fichero o un objeto File. Cuando creamos un RandomAccessFile, debemos indicar si s�lo queremos leer o tambi�n queremos escribir en el fichero. (tenemos que poder leer un fichero para poder escribirlo). La siguiente l�nea de c�digo cea un RandomAccessFile que lee el fichero llamado farrago.txt:
new RandomAccessFile("farrago.txt", "r");
Y esta abre el mismo fichero tanto para lectura como para escritura:
new RandomAccessFile("farrago.txt", "rw");
Despu�s de haber abierto el fichero, podemos usar los m�todos comunes readXXX o writeXXX para realizar I/O en el fichero.
RandomAccessFile soporta la noci�n de puntero de fichero. Este puntero indica la posici�n actual en el fichero, cuando el fichero se crea por primera ver, el puntero de fichero es 0, indicando el principio del fichero. Las llamadas a los m�todos readXXX y writeXXX ajustan la posici�n del puntero de fichero seg�n el n�mero de bytes le�dos o escritos.
Adem�s de los m�todos de I/O normales que impl�citamente mueven el puntero de fichero cuando ocurre la operaci�n, RandomAccessFile contiene tres m�todos que manipulan expl�citamente el puntero de fichero:
- skipBytes
- Mueve el puntero hacia adelante el n�mero de bytes especificado.
- seek
- Posiciona el puntero de fichero en la posici�n anterior al byte especificado.
- getFilePointer
- Devuelve la posici�n actual (byte) del puntero de fichero.