Какой класс предназначен для работы с элементами файловой системы?
Класс java.io.File представляет абстракцию пути к файлу или каталогу в файловой системе и позволяет выполнять операции с метаданными и структурой файловой системы.
File не работает с содержимым файлов (для этого нужны потоки ввода/вывода), а предоставляет средства для создания, удаления, переименования файлов и каталогов, проверки их существования, получения размера, прав доступа, времени последнего изменения и пути к родительскому каталогу.
Основные возможности
- Создание файлов и каталогов:
createNewFile(),mkdir(),mkdirs(). - Удаление и переименование:
delete(),renameTo(). - Проверки:
exists(),isFile(),isDirectory(),isHidden(),canRead(),canWrite(). - Получение информации:
length(),lastModified(),getAbsolutePath(),getName(),getParent(). - Листинг каталога:
list(),listFiles(),listFiles(FileFilter).
Важное о File
Объект File — это просто представление пути. Создание объекта new File("test.txt") не создаёт файл на диске. Файл создаётся только при вызове createNewFile() или при открытии потока вывода, указывающего на этот путь.
В современном коде (Java 7+) рекомендуется использовать java.nio.file.Path и java.nio.file.Files вместо File, так как NIO.2 предоставляет более информативные исключения, поддержку символьных ссылок, атрибутов файлов и потоковых операций.
На собеседовании: назовите
Fileи его основные методы. Обязательно упомяните, что в новом коде следует использоватьPath/Files(NIO.2), аFileсчитается устаревшим подходом.