在做Properties文件修改时,新加的键值对将删除前面所有添加的键值对,在用prop.store()时文件最后保存的是最后一次添加的。 在将文件写入流设置成追加形式时,又变成将所有的键值对添加进文件,不会覆盖key值相同的键值对,请问下,我这个问题怎么解决呢? 我想对properties文件进行修改和对键所对应的值进行修改而不影响其他的值。
FileOutputStream w = null;
try {
w = new FileOutputStream(SAL_PROP_PATH);
if(null == prop) {
prop = new Properties();
prop.load(new FileInputStream(SAL_PROP_PATH));
}
prop.setProperty(key, value);
prop.store(w, key);
w.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(null != w) {
w.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream w = null;
try {
w = new FileOutputStream(SAL_PROP_PATH);
if(null == prop) {
prop = new Properties();
prop.load(new FileInputStream(SAL_PROP_PATH));
}
prop.setProperty(key, value);
prop.store(w, key);
w.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(null != w) {
w.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
newprop.setProperty(key, value);
newprop.load(in);
output注意顺序即可
你能在操作步骤上写具体点吗?
移到prop.load(new FileInputStream(SAL_PROP_PATH));
与prop.setProperty(key, value);之间即可
properties只是提供了同步方法,但你完全可以不使用它。