我正在尝试在服务器加载期间在属性中存储键和值对。保存后,当我检查.properties文件时,没有更改。我不确定我错过了什么。
没有任何异常或错误。更新的属性更改未反映在我的.properties文件中。
我的资源文件位于“src \ main \ resources \ logintokencache.properties”中。
Properties prop = new Properties();
InputStream in = getClass().getClassLoader().getResourceAsStream("logintokencache.properties");
try {
prop.load(in);
prop.setProperty("key","value"); // Setting the property
// Tried using Filewriter to store the properties, not worked
File configFile = new File("logintokencache.properties");
FileWriter writer = new FileWriter(configFile);
prop.store(writer, null);
writer.close();
// Tried using FileOutputStream to store the properties, not worked
FileOutputStream output = new FileOutputStream("logintokencache.properties");
prop.store(output, "This is overwrite file");
// Reloaded the properties and also checked, not worked
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
logintokencache.properties
存储在您的工作目录中,而您加载的文件位于类路径的某个位置。所以你要加载一个文件并将其存储到不同的地方。
如果您确定该资源是可写的(并非总是如此,例如,如果它是洞察罐子),您可以通过
访问File f = new File(getClass().getClassLoader().getResource("logintokencache.properties").getFile());
FileOutputStream out = new FileOutputStream(f);
prop.store(out, "");