Назад к вопросам
Middle
72
questionbank
Что ты знаешь о классе RandomAccessFile?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech 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" |
Открытие для чтения и записи с синхронным обновлением содержимого файла на уровне операционной системы (метаданные могут быть отложены). |