package io_random;
/**
 * @author Fenyvesi Tibor
 */
import java.io.IOException;
import java.io.RandomAccessFile;

public class io_random {
    public static void main(String[] args) throws IOException {

        // random fájl létrehozása, és szekvenciális feltöltése
        try {
            RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
            for (int i = 65; i <= 90; i++) {
                raf.write(i);
            }
            raf.close();
        }
        catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }

        // random fájl pointerének mozgatása, és olvasás fájlból
        try {
            RandomAccessFile raf = new RandomAccessFile("random.txt", "r");
            long hossz = raf.length();
            long poz = 4; // 5. pozíció (a pointer értéke 0-tól kezdődik!)
            while (poz < hossz) {
                raf.seek(poz);
                System.out.println(raf.getFilePointer()+1+ " - "+(char)raf.read());
                poz += 5;
            }
            raf.close();
        }
        catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        
        // random fájlba írás
        try {
            RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
            long hossz = raf.length();
            long poz = 4; // 5.(kezdő) pozíció (a pointer értéke 0-tól kezdődik!)
            int kód;
            while (poz < hossz) {
                raf.seek(poz); // ugrás minden 5. pozícióra
                kód = raf.read(); // karakterkód beolvasása
                raf.seek(poz); // az olvasás miatt újrapozícionálni kell
                raf.write(kód+32); // kisbetűs karakter kiírása
                poz += 5;
            }

            // eredmény kiírása a képernyőre is
            raf.seek(0); // ugrás a fájl elejére
            while ((kód = raf.read()) != -1) {
                System.out.print((char)kód);
            }
            System.out.println("");

            raf.close();
        }
        catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }
    }
}

