Java 修改属性文件

Java 修改属性文件,java,Java,我有一个具有不同数据的属性文件。我需要更新属性的值。如何使用Java实现这一点 我的属性文件包含: #安装程序的模块密码 模块_密码=Mg== #为安装程序选择的模块 ausphur=是 einfuhr=否 edec=否 emcs=否 ncts=否 suma=no eas=否 佐拉格=否 我需要更改“是”或“否”值 您可以使用Java类的属性。 它允许您基于(键、值)对以非常简单的方式处理属性文件。 看看 特别是: 保存属性 以下示例使用properties.store写出上一示例中的应用程序属

我有一个具有不同数据的属性文件。我需要更新属性的值。如何使用Java实现这一点

我的属性文件包含:

#安装程序的模块密码
模块_密码=Mg==

#为安装程序选择的模块
ausphur=是
einfuhr=否
edec=否
emcs=否
ncts=否
suma=no
eas=否
佐拉格=否


我需要更改“是”或“否”值

您可以使用Java类的属性。
它允许您基于(键、值)对以非常简单的方式处理属性文件。
看看
特别是:

保存属性

以下示例使用properties.store写出上一示例中的应用程序属性。>默认属性不需要每次都保存,因为它们从不更改

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

试试这个。
Properties prop=新属性(); OutputStream输出=null

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

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

在属性文件中创建一个
FileOutputStream
,并使用
properties.setProperty(property\u NAME,property\u VALUE)
修改属性,然后在
properties
实例上调用
store(out,null)

        FileOutputStream out = new FileOutputStream("config.properties");
        props.setProperty("ausphur", "no");
        props.store(out, null);
        out.close();
这会有帮助的

更新:


由于
Properties
不知道您的评论,因此无法保留您的评论。如果使用
java.util.Properties
,则它是
哈希表
的一个子类,不会保留键和值的顺序以及插入方式。您可以做的是,您可以使用自己的
Properties
datastore实现进行
LinkedHashMap
收集。但是,您必须自己从文件中读取属性并将其放入
LinkedHashMap
。需要注意的是,
LinkedHashMap
保留了键值的放置顺序。因此,您可以迭代
键集
,并以相同的顺序更新属性文件。因此,可以使用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();

使用
Properties
类?你需要保留注释吗?你签出了吗?没有。文件内容发生了变化。但是它的顺序发生了变化,一些注释丢失了。如果你能找到答案,这将对我有帮助。我认为注释不会被保留,因为文件是用内存中的属性重写的。属性的顺序也不会保留。我仍然对你的预期产出感到困惑。请澄清你是对的。属性的顺序未保留。我需要保留该顺序。请使用您自己的实现尝试
LinkedHashMap