Класс 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()).