Class PropertyResourceBundleControl


  • public class PropertyResourceBundleControl
    extends java.util.ResourceBundle.Control
    A ResourceBundle.Control implementation for loading property-based resource bundles with customizable character encoding.

    PropertyResourceBundleControl allows specifying the character encoding used when reading properties files, ensuring correct interpretation of non-ASCII characters. By default, it uses the platform's default encoding unless explicitly configured otherwise.

    Example Usage

     // Create a control with UTF-8 encoding
     ResourceBundle.Control utf8Control = new PropertyResourceBundleControl("UTF-8");
    
     // Load a resource bundle using the custom control
     ResourceBundle bundle = ResourceBundle.getBundle("my.resources.Messages", Locale.US, utf8Control);
     

    This class is thread-safe and can be reused across multiple calls to ResourceBundle.getBundle(String, ResourceBundle.Control).

    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    PropertyResourceBundle, ResourceBundle.Control
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getEncoding()
      Sets the encoding of properties file.
      java.util.List<java.lang.String> getFormats​(java.lang.String baseName)  
      java.util.ResourceBundle newBundle​(java.lang.String baseName, java.util.Locale locale, java.lang.String format, java.lang.ClassLoader classLoader, boolean reload)  
      static java.util.ResourceBundle.Control newControl​(java.lang.String encoding)
      Creates a new instance of PropertyResourceBundleControl if absent.
      • Methods inherited from class java.util.ResourceBundle.Control

        getCandidateLocales, getControl, getFallbackLocale, getNoFallbackControl, getTimeToLive, needsReload, toBundleName, toResourceName
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PropertyResourceBundleControl

        protected PropertyResourceBundleControl()
                                         throws java.nio.charset.UnsupportedCharsetException
        Throws:
        java.nio.charset.UnsupportedCharsetException
      • PropertyResourceBundleControl

        protected PropertyResourceBundleControl​(java.lang.String encoding)
                                         throws java.nio.charset.UnsupportedCharsetException
        Parameters:
        encoding - the encoding
        Throws:
        java.nio.charset.UnsupportedCharsetException - If encoding is not supported
    • Method Detail

      • getFormats

        public final java.util.List<java.lang.String> getFormats​(java.lang.String baseName)
        Overrides:
        getFormats in class java.util.ResourceBundle.Control
      • newBundle

        public java.util.ResourceBundle newBundle​(java.lang.String baseName,
                                                  java.util.Locale locale,
                                                  java.lang.String format,
                                                  java.lang.ClassLoader classLoader,
                                                  boolean reload)
                                           throws java.io.IOException
        Overrides:
        newBundle in class java.util.ResourceBundle.Control
        Throws:
        java.io.IOException
      • getEncoding

        public java.lang.String getEncoding()
        Sets the encoding of properties file.
        Returns:
        the encoding
      • newControl

        public static java.util.ResourceBundle.Control newControl​(java.lang.String encoding)
                                                           throws java.nio.charset.UnsupportedCharsetException
        Creates a new instance of PropertyResourceBundleControl if absent.
        Parameters:
        encoding - Encoding
        Returns:
        Control
        Throws:
        java.nio.charset.UnsupportedCharsetException - If encoding is not supported