resourcebundle(ResourceBundle和Properties类的区别)
本文目录
- ResourceBundle和Properties类的区别
- PropertyResourceBundle 什么意思
- resourcebundle.getBundle()如何读取webroot文件下的属性文件
- Java中resourceBundle和Properties的区别
- ResourceBundle 有什么用
- 如何使用resourceBundleEditor编辑器来编辑属性文件
- 如何用ResourceBundle来读取配置文件
- private static ResourceBundle config = ResourceBundle.getBundle(“config”);
ResourceBundle和Properties类的区别
一般来说,ResourceBundle类通常是用于针对不同的语言来使用的属性文件。而如果你的应用程序中的属性文件只是一些配置,并不是针对多国语言的目的。那么使用Properties类就可以了。通常可以把这些属性文件放在某个jar文件中。然后,通过调用class的getResourceAsStream方法,来获得该属性文件的流对象,再用Properties类的load方法来装载。示例如下: Class TestLoad { public static void main( String argv) { InputStream is = TestLoad.class.getResourceAsSteam(“myprops.properties“); Properties p = new Properties(); p.load(is); System.out.println(p.get(“MAIL_SERVER_HOSTNAME“)); }}关于ResourceBundle有时候有些简单的配置文件可以没必要使用xml,其实ResourceBundle类就已经做的很好的。它甚至可以搜索到classpath里的jar文件中一些properties文件。例如在jar文件中的根目录放置一个文件:test.properties,然后只要这个jar文件在classpath里。就可以使用这样的语句来获得一些属性: ResourceBundle rb = ResourceBundle.getBundle(“test“); String s = rb.getString(“MQ_Server_Address“); System.out.println(s);
PropertyResourceBundle 什么意思
PropertyResourceBundle 是 ResourceBundle 的一个具体子类,它使用属性文件中的静态字符串集合来管理语言环境资源。有关资源包的更多信息,请参阅 ResourceBundle。有关属性文件的更多信息,特别是有关字符编码的信息,请参阅 Properties。 与其他资源包类型不同,不能为 PropertyResourceBundle 创建子类。相反,要提供含有资源数据的属性文件。ResourceBundle.getBundle 将自动查找合适的属性文件并创建引用该文件的 PropertyResourceBundle。有关搜索和实例化策略的完整描述,请参阅 ResourceBundle.getBundle。 下面的示例显示了资源包系列中具有基本名称 “MyResources“ 的成员。文本定义了包 “MyResources_de“,这是该包系列中的德语成员。该成员基于 PropertyResourceBundle,因此文本就是文件 “MyResources_de.properties“ 的内容(一个相关的 示例显示了如何将包添加到该系列中,该系列作为 ListResourceBundle 的子类来实现)。本示例的键形式为 “s1“ 等等。实际的键完全取决于您的选择,只要它们与在程序中使用的、用于从包中检索对象的键相同即可。键是区分大小写的。 # MessageFormat pattern s1=Die Platte \“{1}\“ enthält {0}. # location of {0} in pattern s2=1 # sample disk name s3=Meine Platte # first ChoiceFormat choice s4=keine Dateien # second ChoiceFormat choice s5=eine Datei # third ChoiceFormat choice s6={0,number} Dateien # sample date s7=3. März 1996
resourcebundle.getBundle()如何读取webroot文件下的属性文件
ResourceBundle rb=ResourceBundle.getBundle(“属性文件路径“);//将文件的key取出 Enumeration《String》 em=rb.getKeys();//存放属性文件的键值对 HashMap《String, String》 hm=new HashMap《String, String》();//根据key取值 while(em.hasMoreElements()){ String key=em.nextElement(); String value=rb.getString(key); hm.put(key, value); }//属性文件的内容全部在map中了
Java中resourceBundle和Properties的区别
一般来说,ResourceBundle类通常是用于针对不同的语言来使用的属性文件。而如果你的应用程序中的属性文件只是一些配置,并不是针对多国语言的目的。那么使用Properties类就可以了。通常可以把这些属性文件放在某个jar文件中。然后,通过调用class的getResourceAsStream方法,来获得该属性文件的流对象,再用Properties类的load方法来装载。示例如下: Class TestLoad { public static void main( String argv) { InputStream is = TestLoad.class.getResourceAsSteam(“myprops.properties“); Properties p = new Properties(); p.load(is); System.out.println(p.get(“MAIL_SERVER_HOSTNAME“)); }}关于ResourceBundle有时候有些简单的配置文件可以没必要使用xml,其实ResourceBundle类就已经做的很好的。它甚至可以搜索到classpath里的jar文件中一些properties文件。例如在jar文件中的根目录放置一个文件:test.properties,然后只要这个jar文件在classpath里。就可以使用这样的语句来获得一些属性: ResourceBundle rb = ResourceBundle.getBundle(“test“); String s = rb.getString(“MQ_Server_Address“); System.out.println(s);
ResourceBundle 有什么用
一般都是用于读取读取properties文件的例如private static ResourceBundle rb = ResourceBundle.getBundle(“test.properties“);然后通过rb.getString(“aa“);来获取test.properties文件中aa属性的值。
如何使用resourceBundleEditor编辑器来编辑属性文件
ResourceBundle Editor是一个用于本地化的属性文件(localized properties files)。它让你通一个屏幕就能够同时管理所有相关联属性文件中的key/value信息。它所具有的功能包括:自动为Keys分类,能够提示丢失掉 的,重复的,相似的values等.如果你的E文很好,那可以看看官方的介绍,及安装方法
如何用ResourceBundle来读取配置文件
对于Java基础很好的人来说,这个应该是简单的不能再简单的了。不过估计一些ja va新手不一定会知道(比如我,上次为别人写一个东西,需要从外存读文件来设置对象的值,因为不知道有ResourceBundle这种东西,就自己用FileReader在那搞,折腾了半天,最后还不能把配置文件和jar包打在一起发布,郁闷)。我们可以在每个对象中用ResourceBundle来读配置文件设置自己的值,也可以用一个固定的对象去读取然后保存下来以便以后使用。在每个class中都去读配置文件会导致代码散乱,所以,只用一个class来进行读取是比较合理的做法。另外,由于I/O的速度比较慢,如果负责读取配置文件的class是在每次用到这些配置项的时候去读文件,就容易成为性能上的瓶颈。为避免这样的情况,可以在初始化的时候就把配置项一次全部读入,并保存在静态成员变量中。不过不排除会有对配置项进行动态读取的需求(因为某些应用是不能停掉的,比如应用服务器。在这些应用运行期间更新了配置文件,就需要在不不关闭应用的情况下重新读入配置项)。以下的例子只考虑了静态读取的情况,如果是动态读取,则可以把读取配置文件的代码放到某个方法中,通过对某个事件的响应来调用该方法更新配置项。假设我们用来读取配置文件的class叫TestResourceBundle,配置项的值来自一个叫property_en.properties的文件(该文件应该放到TestResourceBundle所对应的CLASSPATH的目录),有两个值需要配置:name和value。首先,需要在该class中定义一些字符串常量,如下:public static final String PROPERTIES_FILE_NAME = “property“;public static final String MY_NAME_KEY = “name“;public static final String MY_VALUE_KEY = “value“;其中PROPERTIES_FILE_NAME指出了文件的名字。实际读取的文件应该是property_en.properties,但是只需要告诉ResourceBundle文件名是“property“就足够了。下划线和后面的“en“表示的是本地化信息。这里的en代表“ENGLISH“,后缀properties是默认的。MY_NAME_KEY和MY_VALUE_KEY表示配置项在配置文件中的名字,用ResourceBundle的getString方法根据这些名字去读取相应的值。然后,定义需要配置的变量。这些变量应该是静态的:private static String myName;private static String myValue;然后进行静态初始化:static { try { ResourceBundle bundle = ResourceBundle .getBundle(PROPERTIES_FILE_NAME, Locale.ENGLISH); myName = bundle.getString(MY_NAME_KEY).trim(); myValue = bundle.getString(MY_VALUE_KEY).trim(); } catch(Exception ex) { System.err.println( “:Can’t Load property.properties“); myName = “default name“; myValue = “default value“; System.out.println( “myName will use the default value: “ + myName); System.out.println( “myValue will use the default value: “ + myValue); } } public void print() { System.out.println(“My name is: “ + myName); System.out.println(“My value is: “ + myValue); } public static void main(String args) { TestResourceBundle test = new TestResourceBundle(); test.print(); }}
private static ResourceBundle config = ResourceBundle.getBundle(“config”);
ResourceBundle 类是资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包中加载它。使用这种方式,可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。 getBundle(String baseName) 使用指定的基本名称、默认的语言环境和调用者的类加载器获取资源包。 说白了就是加载baseName 这个文件 “ baseName”指的是一个文件的名称
更多文章:

gateone几线品牌(blackgateone是奢侈品吗)
2025年3月15日 00:10

html标签查询(HTML中哪个标签是用于方便其他网站搜索的呢)
2025年2月20日 19:00

rs触发器和sr触发器的区别(rs触发器中的r和s分别代表什么意思呢)
2025年3月13日 01:20

vbscript编译器(Microsoft VBScript编译器错误)
2025年2月13日 19:30

sounds great(sounds great的英汉互英)
2025年3月1日 08:30

找一款比较好的在线表单设计工具?表单设计器中,如何单独编辑命令按钮组、选项按钮组中各个按钮
2025年3月1日 21:50

fastjson和jackson(spring mvc使用fastjson好还是jackson)
2025年3月25日 21:20