使用java

时间:2016-08-06 20:10:48

标签: java properties

我正在尝试在服务器加载期间在属性中存储键和值对。保存后,当我检查.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();
    }

1 个答案:

答案 0 :(得分:0)

logintokencache.properties存储在您的工作目录中,而您加载的文件位于类路径的某个位置。所以你要加载一个文件并将其存储到不同的地方。

如果您确定该资源是可写的(并非总是如此,例如,如果它是洞察罐子),您可以通过

访问
File f = new File(getClass().getClassLoader().getResource("logintokencache.properties").getFile());
FileOutputStream out = new FileOutputStream(f);
prop.store(out, "");