Gymterview
junior

Какой класс предназначен для работы с элементами файловой системы?

Класс 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 считается устаревшим подходом.