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