我正在编写一个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")中读取的流。