存储通过getClass(). getresourcesstream读取的.properties文件中的更改



我正在编写一个java web应用程序,从.properties文件读取属性。由于我不知道.properties文件的绝对路径,因为它取决于应用程序将来运行的环境,所以我必须使用"getClass(). getresourcesstream"加载它:

Properties props = new Properties();
props.load(getClass().getResourceAsStream("test.properties"));
message = props.getProperty("testdata");

按预期工作。现在我想更改文件中testdata的值。但是我不能打开一个Outputstream来写入,因为我仍然不知道.properties文件的路径。

props.setProperty("testdata", "foooo");
props.store(new FileOutputStream("?????"), null);

是否有办法获得文件的路径,或者我可以以某种方式使用已建立的属性对象?欢迎任何允许我修改.properties文件的想法

您可以通过使用getResource()而不是使用getResourceAsStream()来获得URL

然后您可以使用URL来读取和写入您的属性文件。

File myProps = new File(myUrl.toURI());
FileInputStream in = new FileInputStream(myProps); 

等。

Properties类包含一个存储方法,该方法可用于将属性保存回getClass(). getresourceasstream ("test.properties")中读取的流。

相关内容

  • 没有找到相关文章

最新更新