0

我是 Java 新手,但我实际上很喜欢它,因为不管你信不信,它正在改进我的编码方式。(我猜是因为它迫使您以 OO 方式编写代码)

无论如何,我正在编写一个看起来像这样的 java 库。在基础上有核心库,然后在它之上构建了一些工具包。

现在所有的工具包都有部分代码是共同的。

例如,读取该工具包的配置文件。示例:toolkitA/config/config.cfg

config.cfg
inputDir = /path/to/input
outputDir = /path/to/output



toolkitB/config/config.cfg

config.cfg
inputDir = /path/to/input
// no output here.. maybe this toolkit is just to analyze the input

问题是..很多这些配置是未知的,因为我仍在创建工具包,甚至我不知道将来会有什么工具包。

截至目前,代码流程如下。

 main--> readconfig-->parseconfig--> execute the source code with params. 
  parsed from the source parseconfig

我的关键问题是,由于这些配置文件处于工具包级别,这些配置根本没有与源代码库连接。核心库忽略了这些参数实际上是由用户在配置文件中设置的。现在......也许是因为java,但我觉得这很肤浅。我想要的是这样的

  main--> a core config file setter which reads and parses this tool kit config file --> 
  the core library then interacts with these  objects rather than the superficial level.

我如何做到这一点。

(作为一个狂热的stackoverflow用户..我知道..它不是真正的“错误”相关问题,但我也不知道要搜索什么或如何设置这样的配置内容..我所拥有的只是我想要这个东西的想法实施.. :( )

4

1 回答 1

2

嗯......你的 cfg 文件就像Properties ,这在负载中接受“InputStream”

其次,您可以在类路径中发布这些配置并使用getResourceAsStream作为 InputStreams 加载

InputStream is = Object.class.getClass().getResourceAsStream(CONFIG_FILE);
Properties cfg = new Properties();
cfg.load(is);
于 2013-01-06T13:21:35.057 回答