设为首页 加入收藏

TOP

走出Java资源加载的迷宫
2014-11-24 13:04:58 来源: 作者: 【 】 浏览:0
Tags:走出 Java 资源 加载 迷宫

走出Java资源加载的迷宫


Java开发中常常要加载各种各样的资源文件,如property文件,xml配置文件,图片文件等等。


Java的资源加载策略选择比较多,很多资源加载方法都是基于不同的项目配置,没有一种资源加载方法是万能的。首先来看看Java中的几种常见的资源加载方法:


一:通过ResourceBundle类来实现资源加载


这种方式通常被用来加载多语言支持的property文件,Java语言通过ResourceBundle可以非常好的支持国际化。假设在默认为英文的系统中有语言资源文件mybundle_en.properties,则调用代码如下:


ResourceBundle myBundle =ResourceBundle.getBundle("mybundle");


资源文件mybundle_en.properties的位置应该在sourcefolder的根目录下,假如资源文件位于包路径com.mybundle.test下则上述代码应该改写为:


ResourceBundle myBundle =ResourceBundle.getBundle("com.mybundle.test.mybundle");


二:通过Class类的getResourceAsStream()方法来实现资源加载这种加载方式同时是最常用也是最容易让开发者搞错的方法,getResourceAsStream()方法使用默认文件名加载资源时,要求资源必须与Class文件同时相同的包路径。加载代码如下:


client.getClass().getResourceAsStream("mybundle.properties");


三:通过ClassLoader的getResourceAsStream()来实现资源文件加载通过ClassLoader来加载资源文件是一种非常有效和实用的方法,只要资源位于classpath的路径下面,ClassLoader都可以通过适当的策略来找到你要加载的资源。但是应该注意的是如果你的资源位于SourceFloder的根目录,如下代码就可以完成:


this.getClass().getClassLoader().getResource("mybundle.properties");


如果你的资源文件位于独立的config文件中,只需要把config配置到classpath的变量中,然后使用如下代码即可:


this.getClass().getClassLoader().getResource("config/mybundle.properties");


三种资源加载方式比较与总结:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android上实现柱状图表 下一篇ExtJS中运用HTML5 Canvas简单例子

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)
·Linux 常用命令集合 (2025-12-24 09:52:51)
·socket 编程如何实现 (2025-12-24 09:20:41)
·Python创建简易的Soc (2025-12-24 09:20:39)