Gymterview
middle

Какие режимы доступа к файлу есть у RandomAccessFile?

Конструктор RandomAccessFile требует второй аргумент — строку, определяющую режим доступа к файлу.

Режим Описание
"r" Только чтение. Любые методы записи выбрасывают IOException
"rw" Чтение и запись. Если файл не существует, создаётся новый
"rws" Чтение и запись с синхронной записью содержимого и метаданных на диск при каждом изменении
"rwd" Чтение и запись с синхронной записью содержимого на диск. Метаданные могут записываться асинхронно

Режимы "rws" и "rwd" обеспечивают гарантию записи на физический носитель (аналог fsync), что важно для систем, где потеря данных при сбое недопустима. Режим "rwd" менее строгий и более производительный, чем "rws", поскольку не требует синхронной записи метаданных (время модификации, размер файла).

На практике чаще всего используется "r" для чтения и "rw" для чтения/записи. Режимы "rws" и "rwd" применяются в приложениях с повышенными требованиями к надёжности — базах данных, журналах транзакций, системах хранения.

На собеседовании: назовите все четыре режима. Ключевое — разница между "rw", "rws" и "rwd" в гарантиях записи на диск. "rws" синхронизирует и данные, и метаданные; "rwd" — только данные.