Properties vs Resource Bundle

Yes, you're thinking along the right lines.

Resource bundles don't have to use property files - it's just one implementation (PropertyResourceBundle). A properties file is really just a string-to-string mapping - and that can be used for i18n, but doesn't have to be.

ResourceBundle gives you a consistent way of requesting the appropriate object (usually a string) for a particular locale, with fallbacks etc. This is often, but not always, backed by a separate property file for each language.

So yes: if you're dealing with i18n, you should use ResourceBundle; if you just need a string-to-string map persisted in a text file, it's fine to use Properties directly.


  1. Properties usually used for configuration file, not designed for internationalization (i18n) file. Such as log4j.properties or as your own configuration file.
  2. ResourceBundle is used for internationlization (i18n), the "magic" of ResourceBundle is not only key-value pair, but it can set to spesific Locale (language,region/country,variant) with the same key.

So, yes. it depends on what you need.


ResourceBundle helps to load locale specific properties. If you have different properties file for each locale example DE,CN,etc ResourceBundle will load the appropriate locale specific file.

Tags:

Java