weixin_42298029 2008-11-08 22:42
浏览 767
已采纳

怎么更新properties文件里的key的value,而不是在文件尾部写同名key?

如题。。。

每次setProperties()都是在文件的尾部。
getProperties()也是从尾部读的。
我想把某个key的value修改了,怎么做啊?
比如说
key1=123
key2=321
key3=456

我想把key2的值改了,怎么做?
[b]问题补充:[/b]
首先谢谢2位的答案。

但是关于linpyi 的答案,好像也只是在.properties文件尾部添加了内容,并没有把本来已在文件中存在的同名键值覆盖。setLastUpdateBalanceStat(parameterValue)这个方法是你自己写的吧,你没贴内容。。。

刚才我、想了个主意,就是如果存入一组信息,就把其中一个信息作为主键一样的形式,键名就是他的值,同组的其他信息以该“键名.相应的属性名”作为键名。修改和查询的时候也就方便了。这方法好像有点笨。。。哎

  • 写回答

3条回答 默认 最新

  • linpyi 2008-11-08 23:19
    关注

    楼上说的也很对
    但是配置文件有时候也可以用来放一些普通的信息,当成一个小型数据库,但是要保证不会有人手动去修改

    我贴一段修改配置文件的代码,就是用流重写配置文件
    [code="java"]
    /**
    写入properties信息
    * @param parameterName 配置文件属性名
    * @param parameterValue 需要写入的配置文件的信息
    */
    public static void writeProperties(String parameterName,
    String parameterValue) throws
    IOException {
    Properties prop = new Properties();
    try {
    InputStream fis = new FileInputStream(ctxRealPath);
    //从输入流中读取属性列表(键和元素对)
    prop.load(fis);
    //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
    //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
    OutputStream fos = new FileOutputStream(ctxRealPath);
    prop.put(parameterName, parameterValue);
    //以适合使用 load 方法加载到 Properties 表中的格式,
    //将此 Properties 表中的属性列表(键和元素对)写入输出流
    prop.store(fos, " Update '" + parameterName + "' value");
    setLastUpdateBalanceStat(parameterValue);
    }
    catch (IOException e) {
    // Print.print("ConfigInfoError","Visit "+filePath+" for updating "+parameterName+" value error");
    System.err.println("
    *********************");
    System.err.println("\r\n write BalanceStat configuration failed,please check "+ctxRealPath+" is writer . thank you \n\n");
    System.err.println("**********************");
    // throw e;
    }
    }

    调用的时候你只要传入
    writeProperties(key2,123456);
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作