我正在尝试在应用程序运行前更新application.properties
文件中某个键的值。这是我正在使用的代码片段:
import java.io.*;
import java.util.Properties;
import java.util.Scanner;
public class ModifyPropertiesFileDynamically {
public static void main(String[] args) {
modifyPropertiesFile();
SpringApplication.run(YourApplication.class, args);
}
private static void modifyPropertiesFile() {
Properties properties = new Properties();
try (InputStream inputStream = new FileInputStream("src/main/resources/application.properties")) {
properties.load(inputStream);
properties.setProperty("custom.property", "qwerty");
try (OutputStream outputStream = new FileOutputStream("src/main/resources/application.properties")) {
properties.store(outputStream, null);
System.out.println(properties.getProperty("custom.property"));
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码能够将application.properties
文件中的值更新为新值,但在应用程序首次运行后,它依旧采用的是原来的旧值。
能否有人帮忙解答为什么会发生这种情况,以及如何避免这种问题,以确保值在第一次运行时就能被正确更新?