Archivos aleatorios en java

4
Archivos de Acceso Aleatorio Los archivos de acceso secuencial son extremadamente útiles para la mayoría de las aplicaciones, pero a veces son necesarios archivos de acceso aleatorio que permiten acceder a sus contenido en forma no secuencial, o aleatoria. La clase RandomAccessFile del paquete java.io, implementa un archivo de acceso aleatorio. Puede ser usada tanto para lectura como para escritura de bytes. Todo objeto, instancia de RandomAccessFile soporta el concepto de puntero que indica la posición actual dentro del archivo. Es un entero que empieza en 0 y se mide en bytes. RandomAccessFile provee comandos para operar sobre el puntero.

Transcript of Archivos aleatorios en java

Page 1: Archivos aleatorios en java

Archivos de Acceso Aleatorio

Los archivos de acceso secuencial son extremadamente útiles para la mayoría de las aplicaciones, pero a veces son necesarios archivos de acceso aleatorio que permiten acceder a sus contenido en forma no secuencial, o aleatoria.

La clase RandomAccessFile del paquete java.io, implementa un archivo de acceso aleatorio. Puede ser usada tanto para lectura como para escritura de bytes.

Todo objeto, instancia de RandomAccessFile soporta el concepto de puntero que indica la posición actual dentro del archivo. Es un entero que empieza en 0 y se mide en bytes.

RandomAccessFile provee comandos para operar sobre el puntero.

Page 2: Archivos aleatorios en java

Archivos de Acceso Aleatorio

Constructores:• public RandomAccessFile(String name, String

 mode) throws FileNotFoundException• public RandomAccessFile(File file,

String mode) throws FileNotFoundException – Crea un archivo de acceso aleatorio.– El modo puede ser:

• “r”: Se abre el archivo para solo lectura. • “rw”: Abre el archivo para lectura y escritura.

– Si el archivo aún no existe, lo crea.

Page 3: Archivos aleatorios en java

Archivos de Acceso Aleatorio

• La clase RandomAccessFile implementa las interfaces DataInput y DataOutput, por lo que tiene acceso a todas las operaciones read() y write() de las clases DataInputStream y DataOutputStream que también implementan las interfaces DataInput y DataOutput respectivamente.

• También se tienen métodos para moverse dentro de un fichero: – long getFilePointer(): Devuelve la posición actual del puntero

del fichero.– void seek( long pos ): Coloca el puntero del fichero en una

posición determinada. La posición se da como un desplazamiento en bytes desde el comienzo del fichero. La posición 0 marca el comienzo de ese fichero.

– long length(): Devuelve la longitud del fichero. La posición length() marca el final de ese fichero.

Page 4: Archivos aleatorios en java

Ejemplo

import java.io.*; public class Log {     public static void main( String args[] ) throws IOException {         RandomAccessFile miRAFile;         String s = "Informacion a incorporar\nTutorial de Java\n";         miRAFile = new RandomAccessFile( "java.txt","rw" );         // Nos vamos al final del fichero         miRAFile.seek( miRAFile.length() );         miRAFile.writeBytes( s );         miRAFile.close();         }     }