我有一个包含不同数据的属性文件。我需要更新属性的值。如何使用Java实现这一目标?
我的属性文件包含:
#安装人员的模块密码
MODULE_PASSWORD = Mg ==为安装人员选择的模块
ausphur = YES
einfuhr =无
EDEC =无
EMCS =无
NCTS =无
SUMA =无
EAS =无
zollager =无
我需要更改是或否更改值。
答案 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();