В любом нормальном языке можно работать с путями до файлов. Только иногда пути это просто строки (String), а иногда — специальные классы (File, Path и т.д.).
Так вот, сколько я на это смотрю, так и не понял преимуществ оборачивать пути в классы. Над строками работают все обычные операции со строками — склеить, поделить, интерполировать, сериализовать. А на «путях» — нет. Существование таких классов как правило только возни добавляет. Преимущество делать new Path(pathStr).exists() вместо Path.exists(pathStr) довольно сомнительное.
Может вы знаете? Объясните?
UPD: поменял File на Path чтобы было понятнее