我在修改属性文件的时候,总是再新添加那些要修改的键的值,而不是直接修改原有的键的值,还有我修改后的键值是用”=“号连接起来的,有没有什么方法可以控制用空格写入呢??

解决方案 »

  1.   

    就是说键和值中间是用空格连起来,而不是等号
    例如:
    key=value
    key value
      

  2.   

    请问一下楼主用什么加载属性文件的?
    如果是用Properties.load(InputStream)或者Spring的MessageSource子类加载的,则在下面:
    key = value  
    key :value
    key     value
    这几种形式都行
      

  3.   

    4楼误会我的意思了,我是想保存的时候保存成key  value形式
    而不是key=value形式,明白?
      

  4.   

    Properties的store方法里自动加上 = 了。.....
            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();
            }
      

  5.   


    4楼说的对啊,你想保存成key value形式,要看你加载属性文件的时候使用的方法,是不是支持key value形式,如果支持,可以直接写,否则你自己写一个读属性文件的类吧.