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). |