
package lecturaescriturarandom;

import java.io.File;
import java.io.RandomAccessFile;

public class LecturaEscrituraRandom {

    public static void main(String[] args) {
        String[] estados = {"España", "Portugal", "Alemania", "Francia", "Italia"};
        int[] posiciones = {5,2,0,8,7};  // Posiciones en que se almacenarán, a efectos de que no sean secuenciales.

           try{              
                RandomAccessFile randomAccessFile = new RandomAccessFile(new File("D:\\archivos_creados_Java\\acceso_aleatorio.dat"),"rw");
                String cadenaLeida;
                
                System.out.println("FORMATEAMOS EL ESPACIO QUE OCUPARAN LAS CADENAS DEL FICHERO");
                for (int i = 0; i <(estados.length * 2) ; i++)
                {
                  randomAccessFile.seek(i*40); 
                  randomAccessFile.writeChars("\n");
                }
                
                System.out.println("ESCRIBIMOS LAS CADENAS EN LAS POSICIONES {5,2,0,8,7}");
                for (int i = 0; i <estados.length ; i++)
                {
                   randomAccessFile.seek(posiciones[i]*40);
                   randomAccessFile.writeChars(String.format("%-20s",estados[i]+"\n"));                   
                }
                
                System.out.println("ACCEDIENDO DIRECTAMENTE A UNA POSICION");
                randomAccessFile.seek(2*40); 
                cadenaLeida = randomAccessFile.readLine();
                System.out.println("En la posición : 2 está ubicada la cadena : "+cadenaLeida);
                
                System.out.println("ACCEDIENDO DIRECTAMENTE A CADA POSICION MEDIANTE ESTRUCTURA REPETITIVA");              
                for (int i = 0; i <(estados.length * 2) ; i++)
                {
                   randomAccessFile.seek(i*40); 
                   cadenaLeida = randomAccessFile.readLine();
                   System.out.println("En la posición : "+i+" está ubicada la cadena : "+cadenaLeida);
                }              
           } catch (Exception excepcion)
               {System.out.println(excepcion.getMessage());}  
    }
}
