gpt4 book ai didi

java - 一个 "Resource bundle"用于保存其他本地化数据

转载 作者:行者123 更新时间:2023-11-30 09:30:08 25 4
gpt4 key购买 nike

我需要类似于 ResourceBundles 的系统除了我不会将它用于本地化。基本上,我需要存储多个版本的设置。该设置的一个版本是字符串到字符串映射,可以用 Properties 文件表示。这些设置版本必须很容易地保存到应用程序 .jar 内的文件系统(类似于 PropertyResourceBundle )。

想法是拥有不同版本的应用程序设置(设置配置文件),由字符串类型的键值对表示,可以根据用户决定在应用程序启动时从中选择。同样,这些不是语言版本,因此 ResourceBundle(根据其 javadoc)不是实现它的正确方法。

有什么简单的方法可以在不实现整个想法的情况下做到这一点?请不要建议第三方,它应该只使用 Java SE 类。


编辑:我忘了提一个重要的细节。我很难获得这样的流:Thread.currentThread().getContextClassLoader().getResourceAsStream("/your/resource/here");。这是因为包含属性文件的项目是由 Ant 编译的,并在实际运行的不同 GUI 项目中用作动态加载的库。我可能将所有属性文件都放在固定的项目文件夹中,但由于 Thread.currentThread().getContextClassLoader() 返回 GUI 项目的上下文,我不知道该项目中放置属性文件的 .jar 的位置Ant 我不知道用什么作为 "/your/resource/here"

最佳答案

我可能误解了这个问题,但在我看来你可以轻松地做这样的事情:

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/your/resource/here");
Properties prop = new Properties();
prop.load(inputStream);

这在 Java EE 环境中也是安全的,如果您想更改设置,您可以随时调用您。

更新:只要资源在类路径上,您就应该能够在不知道资源的完整路径的情况下找到它。

关于java - 一个 "Resource bundle"用于保存其他本地化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392862/

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