Назад к вопросам
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" Открытие для чтения и записи с синхронным обновлением содержимого файла на уровне операционной системы (метаданные могут быть отложены).