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); } }
|