Mediumnio
Что такое NIO.2 (Path, Files)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
NIO.2 (Java 7) — современный API для файловых операций, заменяет java.io.File. Классы: Path (замена File), Files (статические методы).
Path p = Path.of("/tmp/file.txt");
Files.exists(p);
Files.createFile(p);
String content = Files.readString(p); // Java 11
Files.writeString(p, "text");
// Stream<String> строк файла (try-with-resources обязательно!)
try (Stream<String> lines = Files.lines(p)) {
lines.filter(s -> s.startsWith("#")).forEach(System.out::println);
}
// Обход директорий
try (Stream<Path> s = Files.walk(Path.of("/dir"))) {
s.filter(Files::isRegularFile).forEach(System.out::println);
}- Path:
resolve,relativize,normalize,toAbsolutePath; - Поддержка symbolic links, file attributes (Posix/Dos), custom file systems (zip);
WatchService— мониторинг изменений;- NIO (Java 1.4) — channels, buffers, selectors для non-blocking I/O.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.