Что знаешь о RandomAccessFile

Класс java.io.RandomAccessFile обеспечивает чтение и запись данных в произвольном месте файла. Он не является частью иерархии InputStream или OutputStream. Это полностью отдельный класс, имеющий свои собственные (в большинстве своем native) методы. Объяснением этого может быть то, что RandomAccessFile имеет во многом отличающееся поведение по сравнению с остальными классами ввода/вывода так как позволяет, в пределах файла, перемещаться вперед и назад.

RandomAccessFile имеет такие специфические методы как:

  • getFilePointer() для определения текущего местоположения в файле;
  • seek() для перемещения на новую позицию в файле;
  • length() для выяснения размера файла;
  • setLength() для установки размера файла;
  • skipBytes() для того, чтобы попытаться пропустить определённое число байт;
  • getChannel() для работы с уникальным файловым каналом, ассоциированным с заданным файлом;
  • методы для выполнения обычного и форматированного вывода из файла (read()readInt()readLine()readUTF() и т.п.);
  • методы для обычной или форматированной записи в файл с прямым доступом (write()writeBoolean()writeByte() и т.п.).

Так же следует отметить, что конструкторы RandomAccessFile требуют второй аргумент, указывающий необходимый режим доступа к файлу - только чтение ("r"), чтение и запись ("rw") или иную их разновидность.

Oct. 22, 2023, Источник

Примеры ответов: