Gymterview
junior

Какие методы класса File вы знаете?

Класс File предоставляет обширный набор методов для работы с файловой системой, которые можно разделить на несколько категорий.

Создание

Метод Описание
boolean createNewFile() Создаёт новый пустой файл, если он не существует. Возвращает true при успехе
boolean mkdir() Создаёт каталог. Возвращает false, если родительский каталог не существует
boolean mkdirs() Создаёт каталог вместе со всеми необходимыми родительскими каталогами

Удаление и переименование

Метод Описание
boolean delete() Удаляет файл или пустой каталог
void deleteOnExit() Помечает файл для удаления при завершении JVM
boolean renameTo(File dest) Переименовывает/перемещает файл. Поведение платформо-зависимо

Проверки

Метод Описание
boolean exists() Существует ли файл или каталог
boolean isFile() Является ли обычным файлом
boolean isDirectory() Является ли каталогом
boolean isHidden() Является ли скрытым
boolean canRead() / canWrite() / canExecute() Проверка прав доступа

Получение информации

Метод Описание
String getName() Краткое имя файла или каталога
String getParent() Путь к родительскому каталогу
String getAbsolutePath() Абсолютный путь
String getCanonicalPath() Канонический путь (без . и .., с разрешёнными симлинками)
long length() Размер файла в байтах
long lastModified() Время последнего изменения (в миллисекундах)

Листинг каталога

Метод Описание
String[] list() Массив имён файлов и каталогов
File[] listFiles() Массив объектов File
File[] listFiles(FileFilter) Массив с фильтрацией

Следует учитывать, что многие методы File (например, delete(), mkdir()) возвращают boolean вместо выброса информативного исключения, что затрудняет диагностику ошибок. Это одна из причин, по которой NIO.2 (Files) с его информативными исключениями предпочтительнее.

На собеседовании: перечислите 8-10 методов по категориям. Упомяните, что renameTo() платформо-зависим, а mkdir() не создаёт промежуточные каталоги (в отличие от mkdirs()).