使用ResourceBundle只读取一些属性

时间:2015-12-15 20:16:01

标签: java properties resourcebundle

我有一个大文件,其中包含在语言环境中指定的消息。例如:

book.registration.error.service = ..
book.registration.error.empty.book = ..
book.registration.error.file.format.book = ..

publisher.register.firstpublisher = ..
publisher.register.publisherNameUa = ..
publisher.register.nameRu = ..
publisher.register.NameEn = ..

有很多消息。为了阅读它们,我使用

java.util.ResourceBundle.getBundle(messagesLocation, locale)

但是我会阅读所有消息。有没有办法只阅读一些消息。例如,以' book'?

开头的只读消息

1 个答案:

答案 0 :(得分:0)

实现目标的最佳方法是将非常大的资源包分解为多个包 - 并将所有“书”包放入特定的包中。

你可以自己解析文件,但你仍然必须阅读整个文件(除非它已经排序),但这似乎打败了你想要实现的目的。

通常情况下,如果你遇到内存或性能问题,你只会走这条路 - 如果是内存问题,分解捆绑可能会有所帮助;如果是性能问题,在后台线程上初始化包可能会有所帮助。

如果不明显 - 你应该总是缓存捆绑!每次重新创建捆绑包都是一种浪费 - 如果您想支持动态更改资源,只需在资源实际更改时使缓存无效。