Sobes.tech
Middle

Co wiesz o klasie RandomAccessFile?

sobes.tech AI

Odpowiedź od AI

RandomAccessFile zapewnia możliwość odczytu i zapisu danych w dowolnym miejscu pliku. W przeciwieństwie do strumieni, nie jest podklasą InputStream ani OutputStream.

Kluczowe cechy:

  • Pozycjonowanie: Pozwala na przemieszczanie się po pliku, ustawiając bieżącą pozycję za pomocą metody seek().
  • Tryb dostępu: Otwiera się z określonym trybem dostępu ("r", "rw", "rws", "rwd").
  • Odczyt i zapis: Obsługuje odczyt i zapis typów prymitywnych, łańcuchów i tablic bajtów.
  • Długość pliku: Pozwala na pobranie bieżącej długości pliku (length()) i ustawienie jej (setLength()).

Przykład otwarcia pliku do odczytu i zapisu:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.txt", "rw");
// ... dalsza praca z plikiem
file.close();

Przykład przemieszczania się po pliku i odczytu:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.bin", "r");
file.seek(100); // Przemieszczanie na 100. bajt
byte b = file.readByte(); // Odczyt jednego bajta
file.close();

Przykład zapisu do pliku:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_output.txt", "rw");
file.writeBytes("Hello, world!"); // Zapis łańcucha
file.close();

Tryby dostępu:

Tryb Opis
"r" Otwarcie do odczytu.
"rw" Otwarcie do odczytu i zapisu.
"rws" Otwarcie do odczytu i zapisu z synchroniczną aktualizacją zawartości i metadanych pliku na poziomie systemu operacyjnego.
"rwd" Otwarcie do odczytu i zapisu z synchroniczną aktualizacją zawartości pliku na poziomie systemu operacyjnego (metadane mogą być odłożone).