Я делаю программу, которая работает с базой данных MySQL, сейчас я храню URL, логин, пароль e.t.c как public static String
. Теперь мне нужно сделать возможным работу на другом компьютере, чтобы адрес базы данных был разным, поэтому мне нужен способ отредактировать его внутри программы и сохранить. Я хотел бы использовать только внешний текстовый файл, но я не знаю, как указать его местоположение.
Я решил сделать это с помощью файла свойств, я положил его в папку src/res
. Это работает правильно, пока я пробую это в Intellij Idea, но когда я строю банку (артефакт), я получаю java.io.FileNotFoundException
Я пробовал два способа:
Этот был только что скопирован
private String getFile(String fileName) {</p>
<pre><code> StringBuilder result = new StringBuilder("");
//Get file from resources folder
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
System.out.println(file.length());
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
result.append(line).append("\n");
}
scanner.close();
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}
System.out.println(obj.getFile("res/cfg.txt"));
И второй, используя Properties
класс:
try(FileReader reader = new FileReader("src/res/cfg.txt")) {
Properties properties = new Properties();
properties.load(reader);
System.out.println(properties.get("password"));
}catch (Exception e) {
e.printStackTrace();
System.out.println(e);
}
В обоих случаях я получаю java.io.FileNotFoundException
. Как правильно прикрепить файл конфигурации таким образом?