сперва решил по шаблону (через поиск расширения) потом заметил, что в Files есть Files.probeContentType(Paths.get(fileName)) определяет тип файла взввисимости от содекржимого
и соот-но можно и так
public Properties getProperties(String fileName) {
Properties properties = new Properties();
try(FileInputStream fis = new FileInputStream(fileName)) {
String filetype = Files.probeContentType(Paths.get(fileName));
if (filetype.equals("text/xml")) {
properties.loadFromXML(fis);
} else {
properties.load(fis);
}
} catch (IOException e) {
return properties;
}
return properties;
}
Все четко и понятно, сразу видно применение и польза, а правильное решение удивило своим размахом, но решил куда проще используя fileName.endsWith(".xml")...
я сделал без всего того что там в верном решении и пропустило.
просто создал объект Properties.
потом в блоке try создал FileInputStream и передал String,
и дальше условие если endsWith(".xml") то loadFromXML
иначе просто load
ну и пустой блок catch
все работает и все пропустило
File.separator - это символ-разделитель для разных операционных систем, используемый в путях файловой системы. В ОС Windows, например, используется символ "\" (обратный слеш), а в Unix-подобных ОС - "/" (прямой слеш).
Если вы используете символ-разделитель напрямую в своем коде, то при переносе вашего приложения на другую операционную систему может возникнуть проблема, поскольку символ-разделитель на этой системе может отличаться от того, который вы использовали.
Использование File.separator обеспечивает кроссплатформенность вашего кода. Например, следующий код будет работать корректно на любой платформе:
Если вы используете только один символ-разделитель везде в своем коде, это может работать на вашей текущей ОС, но может привести к ошибкам при переносе приложения на другую ОС.
Кроме того, использование File.separator может сделать ваш код более читабельным и понятным, так как вы сразу укажете, что используете символ-разделитель файловой системы.
Таким образом, использование File.separator рекомендуется для обеспечения кроссплатформенности вашего кода.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ