如何更新属性文件?

时间:2011-08-26 09:34:37

标签: java properties

我使用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的完整路径时,它会起作用。 但是,我不想给出完整的路径,因为路径是动态的。有人知道如何使用一些相对路径来做到这一点。请告诉我这个。

2 个答案:

答案 0 :(得分:4)

使用Apache's Commons Configuration API处理您的属性文件。它将读取和写入属性文件(任何配置文件)......并且您的生活更轻松。

修改

  • 下载commons-configuration binary here
  • 如果您的项目有一个,请将它放在类路径(lib目录)中的某个位置
  • 运行一个干净的项目构建,以便Eclipse(我假设)可以选择新的类
  • 为您的操作和代码导入所需的类。 :D

答案 1 :(得分:3)

您可能想尝试commons-configuration并使用PropertiesConfiguration。这应该满足你的所有需求。