ResourceBundle来读取配置文件及路径问题
2018-03-23 16:33
344 查看
1.当配置文件在classpath下时:
使用ResourceBundle读取配置文件,默认要把配置文件放在classpath下(默认的src目录下);property.properties和protest.properties :
如果想把配置文件从src分离,可以新建一个src平级的文件夹config;书写prop_en.properties;
此时,如果想读取config下的配置文件,只需要让config下的输出也指定为何src一样的输出目录就可以了;右键config–〉buildpath–〉java build path –〉source 下新建folder:config,确定(此时src和config的default output folder 同为项目名/bin目录)
备注:
1.src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。
WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资源的入口。
引用classpath路径下的文件,只需在文件名前加classpath:
lib和classes同属classpath,两者的访问优先级为: lib>classes。
classpath 和 classpath* 区别:
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。
2.
命名规则按照:资源名+语言国别.properties
其中new Locale(“zh”, “CN”);这个对象就告诉了程序你的本地化信息,就拿这个来说吧:程序首先会去classpath下寻找res_zh_CN.properties;若不存在,那么会去找res_zh.properties,若还是不存在,则会去寻找res.properties,要还是找不到的话,那么就该抛异常了:MissingResourceException.
参考:https://blog.csdn.net/haiyan0106/article/details/2257725
使用ResourceBundle读取配置文件,默认要把配置文件放在classpath下(默认的src目录下);property.properties和protest.properties :
#protest.properties# welcome=Hello World
#property.properties# name=demacia value=100
package test1; import java.util.Locale; import java.util.ResourceBundle; /** * @author zd * src路径下的文件在编译后会放到WEB-INF/clases路径下(默认的classpath) * 直接放到WEB-INF下的话,是不在classpath下的。 */ public class TestResourceBundle { public static final String PROPERTIES_FILE_NAME = "property"; public static final String MY_NAME_KEY = "name"; public static final String MY_VALUE_KEY = "value"; 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("[Property]:Can't Load property.properties"); } } public void print() { System.out.println("My name is: " + myName); System.out.println("My value is: " + myValue); } public static v 4000 oid main(String[] args) { //读取property.properties TestResourceBundle trb = new TestResourceBundle(); trb.print(); //读取protest.properties ResourceBundle rb = ResourceBundle.getBundle("protest"); System.out.println(rb.getString("welcome")); //读取prop_en.properties ResourceBundle rb_prop = ResourceBundle.getBundle("prop", Locale.ENGLISH); System.out.println(rb_prop.getString("file_name")); } }
如果想把配置文件从src分离,可以新建一个src平级的文件夹config;书写prop_en.properties;
#prop_en.properties# file_name=\u6211\u65F6\u8FB0\u8BB8
此时,如果想读取config下的配置文件,只需要让config下的输出也指定为何src一样的输出目录就可以了;右键config–〉buildpath–〉java build path –〉source 下新建folder:config,确定(此时src和config的default output folder 同为项目名/bin目录)
备注:
1.src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。
WEB-INF/classes目录存放src目录java文件编译之后的class文件,xml、properties等资源配置文件,这是一个定位资源的入口。
引用classpath路径下的文件,只需在文件名前加classpath:
<param-value>classpath:applicationContext-*.xml</param-value> <!-- 引用其子目录下的文件,如 --> <param-value>classpath:context/conf/controller.xml</param-value>
lib和classes同属classpath,两者的访问优先级为: lib>classes。
classpath 和 classpath* 区别:
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。
2.
命名规则按照:资源名+语言国别.properties
ResourceBundle bundle = ResourceBundle.getBundle("res", new Locale("zh", "CN"));
其中new Locale(“zh”, “CN”);这个对象就告诉了程序你的本地化信息,就拿这个来说吧:程序首先会去classpath下寻找res_zh_CN.properties;若不存在,那么会去找res_zh.properties,若还是不存在,则会去寻找res.properties,要还是找不到的话,那么就该抛异常了:MissingResourceException.
参考:https://blog.csdn.net/haiyan0106/article/details/2257725
相关文章推荐
- 关于读取配置属性文件的路径问题
- Spring 读取配置文件 及路径问题
- JAVA相关问题:java读取properties配置文件路径问题
- 用静态代码块读取数据库配置文件:tResourceAsStream的配置文件路径问题
- java读取类路径的配置文件问题
- Spring 读取配置文件 及路径问题(转)
- 关于系统读取properties配置文件的路径问题,包括打成jar包的运行文件
- java工程下读取配置文件的路径问题
- Spring读取配置文件,地址问题,绝对路径,相对路径
- Java读取配置文件的几种方法以及路径问题
- java对【配置文件的读取】与【读配置文件时的路径问题】代码总结
- 使用xml作为数据库的配置文件的路径读取问题
- 用ClassPathXmlApplicationContext读取Spring配置文件的路径问题
- 如何用ResourceBundle来读取配置文件 收藏
- IE8上传文件时javascript读取文件的本地路径的问题("C:/fakepath/")的解决方案
- 如何用ResourceBundle来读取配置文件
- SiteMesh:关于decorators.xml配置文件中路径设置的问题
- JAR包中读取配置文件问题
- 单元测试中读取配置文件问题
- 如何用ResourceBundle来读取配置文件(转)