с любым расширением, из которого на считается конфиг?
Я так понимаю, что под любым другим файлом имеется ввиду обычный текстовой файл с разрешением из любого набора букв после точки в конце последовательности символов имени, состоящий из пар ключ=значение. Или еще какие-то другие файлы могут быть?
Заранее благодарен за помощь!
package com.javarush.task.task31.task3109;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Properties;
/*
Читаем конфиги
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
Properties properties = solution.getProperties("4.JavaCollections/src/com/javarush/task/task31/task3109/properties.xml");
properties.list(System.out);
properties = solution.getProperties("4.JavaCollections/src/com/javarush/task/task31/task3109/properties.txt");
properties.list(System.out);
properties = solution.getProperties("4.JavaCollections/src/com/javarush/task/task31/task3109/notExists");
properties.list(System.out);
}
public Properties getProperties(String fileName) {
final String xml = "xml";
Properties properties = new Properties();
Path configFile = Paths.get(fileName);
//There is transferring the null-instance, if file is not exists.
if (Files.notExists(configFile)) {
return properties;
}
//There is transferring the null-instance, if file hasn't a extension or this one is directory.
String configFileName = configFile.getFileName().toString();
if (Files.isDirectory(configFile) || !configFileName.contains(".")) {
return properties;
}
InputStream inputStream;
try {
inputStream = new FileInputStream(configFile.toFile());
if (configFileName.split("\\.")[1].equals(xml)) {
properties.loadFromXML(inputStream);
return properties;
} else {
properties.load(inputStream);
inputStream.close();
}
} catch (IOException e) {
return properties;
}
return properties;
}
}