修改属性文件

时间:2014-03-11 10:25:40

标签: java

我有一个包含不同数据的属性文件。我需要更新属性的值。如何使用Java实现这一目标?

我的属性文件包含:

  

#安装人员的模块密码
  MODULE_PASSWORD = Mg ==

     

为安装人员选择的模块
  ausphur = YES
  einfuhr =无
  EDEC =无
  EMCS =无
  NCTS =无
  SUMA =无
  EAS =无
  zollager =无

我需要更改是或否更改值。

4 个答案:

答案 0 :(得分:0)

您可以使用Properties Java类 它允许您以非常简单的方式处理基于(键,值)对的属性文件 看看http://docs.oracle.com/javase/tutorial/essential/environment/properties.html
特别是:

  

保存属性

     

以下示例使用Properties.store从前一个示例中写出应用程序属性。每次都不需要保存>默认属性,因为它们永远不会改变。

     

FileOutputStream out = new FileOutputStream(“appProperties”);
  applicationProps.store(out,“--- No Comment ---”);
  out.close();
  store方法需要一个要写入的流,以及一个用作输出顶部注释的字符串。

答案 1 :(得分:0)

试试这个。
属性prop = new Properties();         OutputStream output = null;

        output = new FileOutputStream("config.properties");

        // set the properties value
        prop.setProperty("propertyname", "newValue");
        prop.store(output, null);

答案 2 :(得分:0)

为属性文件创建FileOutputStream并使用Properties.setProperty(PROPERTY_NAME,PROPERTY_VALUE)修改属性,然后在store(out,null)实例

上调用Properties
        FileOutputStream out = new FileOutputStream("config.properties");
        props.setProperty("ausphur", "no");
        props.store(out, null);
        out.close();

这会有所帮助!

<强>更新

由于Properties不了解您的评论,因此无法保留您的评论。如果使用java.util.Properties,则它是Hashtable的子类,它不会保留键的顺序,也不会像插入它们那样赋值。您可以做的是,您可以使用自己的LinkedHashMap数据存储区实现Properties集合。但是,您必须自己从文件中读取属性并将其放在LinkedHashMap中。要注意,LinkedHashMap保留键放置值的顺序。因此,您可以迭代keyset并以相同的顺序更新属性文件。因此,订单可以保留

答案 3 :(得分:0)

使用java.util.Properties。

    Properties props = new Properties();
    FileInputStream fis = new FileInputStream("pathToYourFile");
    props.load(fis);
    fis.close();
    props.setProperty("propName", "propValue");
    FileOutputStream fos = new FileOutputStream("pathToYourFile");
    props.store(fos, "Your comments");
    fos.close();