我在修改属性文件的时候,总是再新添加那些要修改的键的值,而不是直接修改原有的键的值,还有我修改后的键值是用”=“号连接起来的,有没有什么方法可以控制用空格写入呢??
解决方案 »
- 一个字符串处理,能否用正则进行处理
- 关于Class [Ljava.lang.String 和 Class java.lang.String的区别
- 请教大侠struts程序中的数据访问层应该怎么写啊?谢谢!
- 小弟总结的array,vertor,arraylist,hashable,hashmap等几个易混淆的概念,请大家来指正,补充
- ResultSet,conn,的传递问题,
- 为什么不能用import java.*;导入所有的包?
- java中如何给多个按钮添加同样的事件
- 刚刚在SOHU看到一个令人发火的帖子
- 如何在java中实现报表??请指点..
- 那个免费的数据库软件最好????
- 请教大家
- 有一个简单的java GUI程序,编译没有错误,但是没有输出结果!
例如:
key=value
key value
如果是用Properties.load(InputStream)或者Spring的MessageSource子类加载的,则在下面:
key = value
key :value
key value
这几种形式都行
而不是key=value形式,明白?
for (Enumeration e = keys(); e.hasMoreElements();) {
String key = (String)e.nextElement();
String val = (String)get(key);
key = saveConvert(key, true); /* No need to escape embedded and trailing spaces for value, hence
* pass false to flag.
*/
val = saveConvert(val, false);
writeln(awriter, key + "=" + val); //这里自动加上了。
}
.....要想去掉的话,就用别的方法吧,
我用了一种很笨的方法,呵呵:
try {
Properties pro = new Properties();
pro.load(new FileInputStream(new File("c:/a.properties")));
System.out.println(pro.getProperty("name"));
pro.setProperty("name", "this is a test"); StringWriter writer = new StringWriter();
pro.list(new PrintWriter(writer));
String value = writer.toString().replace("=", " ");
BufferedWriter wr = new BufferedWriter(new FileWriter(new File(
"c:/a.properties")));
wr.write(value);
wr.close();
} catch (Exception ex) {
ex.printStackTrace();
}
4楼说的对啊,你想保存成key value形式,要看你加载属性文件的时候使用的方法,是不是支持key value形式,如果支持,可以直接写,否则你自己写一个读属性文件的类吧.