Middle
Какво знаете за класа RandomAccessFile?
sobes.tech AI
Отговор от AI
RandomAccessFile предоставя възможност за четене и записване на данни навсякъде във файла. За разлика от потоковете, той не е подклас на InputStream или OutputStream.
Ключови характеристики:
- Позициониране: Позволява преместване във файла, като задава текущата позиция чрез метода
seek(). - Режим на достъп: Отваря се с определен режим на достъп (
"r","rw","rws","rwd"). - Четене и запис: Поддържа четене и запис на примитивни типове, низове и байтови масиви.
- Дължина на файла: Позволява да получите текущата дължина на файла (
length()) и да я зададете (setLength()).
Пример за отваряне на файл за четене и писане:
// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.txt", "rw");
// ... допълнителна работа с файла
file.close();
Пример за преместване във файла и четене:
// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.bin", "r");
file.seek(100); // Преместване на байт 100
byte b = file.readByte(); // Четене на един байт
file.close();
Пример за запис във файла:
// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_output.txt", "rw");
file.writeBytes("Hello, world!"); // Запис на низ
file.close();
Режими на достъп:
| Режим | Описание |
|---|---|
"r" |
Отваряне за четене. |
"rw" |
Отваряне за четене и писане. |
"rws" |
Отваряне за четене и писане със синхронна актуализация на съдържанието и метаданните на файла на ниво операционна система. |
"rwd" |
Отваряне за четене и писане със синхронна актуализация на съдържанието на файла на ниво операционна система (метаданните могат да бъдат отложени). |