我使用classLoader方法加载属性文件。使用这个,我能够检索属性的值,但现在我想更新一些属性的值,我无法做到这一点。请帮忙。这是代码:
InputStream inputStream = this.getClass()。getClassLoader() .getResourceAsStream( “PublishDate.properties”);
try {
Properties properties = new Properties();
try {
// load the inputStream using the Properties
properties.load(inputStream);
}
catch(Exception e) {
e.printStackTrace();
}
// get the value of the property
String propValue = properties.getProperty("lastHtlProcessPublishDate");
这里,在propValue中我从文件中获取正确的值。我正在更新这样:
properties.put("lastHtlProcessPublishDate",dateFormatter.format(new Date()));
properties.store(new FileOutputStream("PublishDate.properties"), null);
使用此值不会更新,但是当我提供PublishDate.properties
的完整路径时,它会起作用。
但是,我不想给出完整的路径,因为路径是动态的。有人知道如何使用一些相对路径来做到这一点。请告诉我这个。
答案 0 :(得分:4)
使用Apache's Commons Configuration API处理您的属性文件。它将读取和写入属性文件(任何配置文件)......并且您的生活更轻松。
lib
目录)中的某个位置答案 1 :(得分:3)
您可能想尝试commons-configuration并使用PropertiesConfiguration。这应该满足你的所有需求。