准备资源文件ResourceBundle通过加载资源文件实现本地化,需要为每种语言和国家地区准备对应的资源文件资源文件通常是properties格式的文本文件加载资源文件在Java中,使用ResourceBundle类加载资源文件可通过构造函数加载默认文件,或使用带有Locale参数的getBundle方法加载特定文件获取本地化字符串。
ResourceBundle的主要优点在于实现程序的国际化,通过在bundle文件名后添加国家和语言关键字,系统能够自动加载相应的bundle文件具体操作示例如下在不同文件名后添加对应国家和语言的关键字,如bundleproperties 缺省文件 bundle_zhproperties 中文版本 bundle_japroperties 日文版本 程序加载bundl。
一般来说,ResourceBundle类通常是用于针对不同的语言来使用的属性文件而如果resourcebundle你的应用程序中的属性文件只是一些配置,并不是针对多国语言的目的那么使用Properties类就可以resourcebundle了通常可以把这些属性文件放在某个jar文件中然后,通过调用class的getResourceAsStream方法,来获得该属性文件的流对象,再用Propert。
使用Android Studio打开你的Android项目选择项目并右键操作在项目视图中,选中你的项目目录右键点击项目目录,弹出下拉菜单选择新建ResourceBundle在弹出的下拉菜单中,选择“New”在下一级菜单中,选择“Resource Bundle”配置ResourceBundle弹出“Create Resource Bundle”窗口在“Resource Bundle。
第二种方法是使用ResourceBundle类读取配置信息使用ResourceBundle类的优点在于,可以以完全限定类名的方式来加载资源文件,并直接读取配置信息这种读取方式适用于非Web应用环境但是,ResourceBundle类的缺点在于,它只能加载位于classes目录下的资源文件,并且只能读取properties文件这限制了它在某些特定场景。
假设我们用来读取配置文件的class叫TestResourceBundle,配置项的值来自一个叫property_enproperties的文件该文件应该放到TestResourceBundle所对应的CLASSPATH的目录,有两 个值需要配置name和value首先,需要在该class中定义一些字符串常量,如下public static final String PROPERTIES_FILE_NAME = quot。
ResourceBundle rb = ResourceBundlegetBundlequotLocalStringsquot检查LocalStrings语言名称是否正确,符合I18N标准另外,你是否有对应的资源文件xxxproperties,而且这个LocalStrings是一个完全限定类名,要与你的xxx对应ResourceBundle。
把你的LocaleSIMPLIFIED_CHINESE toString一下看看便知 如果要读取的话 new Localequotchsquot 自己new就可以了,看了下ResourceBundle里面也没检查他是不是符合iso标准 使用。
Java的ResourceBundle类是用来读取properties的资源文件的,很多国际化操作都使用该类 我需要用这个读取自己自定义的properties文件,一开始是这么写ResourceBundlegetBundlequotgispropertiesquot启动工程竟然发现不能找到资源文件的错误。
ResourceBundlegetBundlequotconfquot返回的是一个PropertyResourceBundle对象看了看JDK源代码,PropertyResourceBundle在读文件时使用Propertiesloadstream,它存储的是String所以它永远返回的都是String而不是String数组简言之,PropertyResourceBundle不支持getStringArray这个方法你还是用split吧String。
ResourceBundle rb=ResourceBundlegetBundlequot属性文件路径quot将文件的key取出 EnumerationltString em=rbgetKeys存放属性文件的键值对 HashMapltString, String hm=new HashMapltString, String根据key取值 whileemhasMoreElements String key=emnextElementString value=。
一通常实现方法有两种1采用多语言模板,通过程序渲染不同语言版本的模板1优点不同语言版本有各自的模板,维护量大,但维护简单甚至不同版本的模板在显示风格上都可以不同2缺点同一商业逻辑的页面,需要维护多套模板,有重复工作2采用同一模板,利用ResourceBundle配置多语言。
在Spring或SpringBoot中,国际化功能通过``接口实现此接口提供了三个重要方法,其三个主要实现类及其继承关系如下首先,我们将详细探讨基于`ResourceBundleMessageSource`的基础玩法在SpringBoot项目中实现国际化的基本步骤包括创建一个SpringBoot项目并添加web依赖。
Spring定义`MessageSource`接口用于访问国际化信息Springboot提供国际化信息自动配置类,注册了`ResourceBundleMessageSource`实现类配置生效基于`ResourceBundleCondition`条件,从环境变量读取``值,默认为`messages`,此值为资源文件名称,扩展名为`properties`通过`PathMatchingResource。
如果发生ResourceBundlegetBundlequotmyresourcequot 读取不到资源文件时,需要注意下面问题\x0d\x0a1,java project\x0d\x0a仅仅需要把myresourceproperties文件放在src下,如果是放在package下,则程序的filename应该packagemyresource\x0d\x0a\x0d\x0a2,j2ee的web project\x0d\x0a1,my。
文件存放位置具体在eclipse工程中的表现是可以放在src下面,也可放在webinfo及webroot下面等因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties缺点不能在servlet外面应用读取配置信息方式二采用ResourceBundle类读取配置信息,优点是可以以完全限定类名的方式。
联系电话:18300931024
在线QQ客服:616139763
官方微信:18300931024
官方邮箱: 616139763@qq.com