gpt4 book ai didi

java - 从 System.getProperties() 将属性合并到 ResourceBundle

转载 作者:行者123 更新时间:2023-11-30 12:01:37 28 4
gpt4 key购买 nike

我正在从一个文件构建一个 ResourceBundle,这个包包含 值。

InputStream in = getClass().getResourceAsStream("SQL.properties");
properties = new PropertyResourceBundle(in);
in.close();

我想在此 bundle 上添加/替换一些我使用 -Dsome.option.val.NAME1=HiEarth 从命令行传递的属性

我不关心丢弃旧包并创建一个新包。

可以给小费吗?

我认为我需要做的是:

  1. 从束中创建一个 HashMap
  2. 替换值。
  3. 将 HashMap 转换为 InputStream。//这是复杂的部分...
  4. 从中构建新包。

最佳答案

这会执行您想要的一些操作(将 System.properties 转换为 ResourceBundle)。更好的错误处理留给你:-)

        public static ResourceBundle createBundle()    {        final ResourceBundle  bundle;        final Properties      properties;        final CharArrayWriter charWriter;        final PrintWriter     printWriter;        final CharArrayReader charReader;        charWriter = new CharArrayWriter();        printWriter = new PrintWriter(charWriter);        properties = System.getProperties();        properties.list(printWriter);        charReader = new CharArrayReader(charWriter.toCharArray());        try        {            bundle = new PropertyResourceBundle(charReader);            return (bundle);        }        catch(final IOException ex)        {            // cannot happen            ex.printStackTrace();        }        throw new Error();    }

关于java - 从 System.getProperties() 将属性合并到 ResourceBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com