Programowanie obiektowe - JAVA
Informacje ogólne > Laboratorium 4 > Swobodny dostęp do pliku - klasa RandomAccessFile

Swobodny dostęp do pliku - klasa RandomAccessFile

Klasa RandomAccessFille pozwala na otwarcie pliku w trybie do odczytu ("r"), zapisu ("w") lub jedoczesnego odczytu i zapisu ("rw").

Przy pomocy metody seek() można ustawiać wskaźnik odczytu w dowolnym miejscu pliku, a klasa posiada wiele różnych metod do zapisu i odczytu (np. readByte(), readDouble(), readLine(), writeByte(), ...)

Przykładowy program Pliki_RAF.java:

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class Pliki_RAF {

  public static void main(String[] args) {

     String tekst="";
    
long pozycja=0, dlugoscpliku=0;
     RandomAccessFile raf =
null;

     // OTWIERANIE PLIKU I WYBÓR TRYBU ODCZYTU - "r" (zapis - "w",  zapis/odczyt "rw")
    
try {
        raf =
new RandomAccessFile("plik.txt", "r");
      }
catch (FileNotFoundException e) {
          System.
out.println("BŁĄD PRZY OTWIERANIU PLIKU!");
          System.exit(1);
      }

     // SWOBODNY ODCZYT Z PLIKU
    
try {
        dlugoscpliku = raf.length();
        System.
out.println("Dlugosc pliku: " + dlugoscpliku);
        raf.seek(0);
// "skok" na początek pliku
       
while (pozycja < dlugoscpliku){
              tekst += raf.readLine();
              pozycja= raf.getFilePointer();
         }
      }
catch (IOException e1) {
            System.
out.println("BŁĄD ODCZYTU Z PLIKU!");
            System.exit(2);
       }

      //ZAMYKANIE PLIKU:
     
try {
          raf.close();
       }
catch (IOException e) {
             System.
out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
             System.exit(3); 
       }

       System.
out.println("Wczytane wyrazy: " + tekst);
       System.
out.println("polozenie wskaznika :" + pozycja);
  }
}