1.使用java.util.Properties类的load()方法
示例:
Java代码
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
2.使用java.util.ResourceBundle类的getBundle()方法
示例:
Java代码
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
3.使用java.util.PropertyResourceBundle类的构造函数
示例:
Java代码
InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);
4.使用class变量的getResourceAsStream()方法
示例:
Java代码
InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);
5.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例:
Java代码
InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);
6.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例:
Java代码
InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);
补充
Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:
Java代码
InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);
其中name为properties文件名字.但我在网上发现有人说要写properties文件的绝对路径,否则测试 不 能通过.我没验证过,有兴趣的朋友可以试试.
就我个人而言我是比较偏向用第3方法.我在网上找到一篇介绍的更为详细的文章,全文如下:
在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。
通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文件,从里面读取我们需要的值。
Java代码
Locale locale = Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("ConnResource", locale);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);
这里对应了/WEB-INF/class/ConnResource.properties文件内容为:
test=hello world
打印出来的结果就是hello world
请注意,这里我们可以利用Locale和ResourceBundle的这个组合创建国际化的java程序。我们可以把locale实例化为
Java代码
new Locale("zh","CN");
通过
Java代码
ResourceBundle.getBundle("MessagesBundle", locale);
系统将自动寻找MessagesBundle_zh_CN,即定义为中国大陆地区简体中文。如果没有该文件,则会依次寻找MessagesBundle_zh,MessagesBundle,直到找到为止。
看见没有?用这种方法还可以进行国际化的处理.应该功能上比较强大点.
分享到:
相关推荐
【标题】"毕业设计(java程序2005new).rar"是一个关于Java编程语言的毕业设计项目,其中包含了2005年的一个新版本的Java程序。这个项目可能是针对计算机科学或软件工程专业学生的,旨在展示他们在学习Java编程过程...
【标题】和【描述】提到的是2005年4月全国计算机等级考试二级JAVA笔试试题及答案,而【标签】包含"java JavaScript",但文档内容并未涉及JavaScript,因此主要讨论Java相关知识。 Java是一种广泛使用的面向对象的...
实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 315 实例246 控制窗体加载时的位置 315 实例247 设置窗体在屏幕中的位置 315 实例248 从上次关闭位置启动窗体 316 实例...
- **Servlet 2.5**:2005年发布,支持Annotation配置,简化了Servlet的部署描述符编写。 - **Servlet 3.0**:2009年发布,引入了非阻塞I/O模型。 - **Servlet 3.1**:2013年发布,支持Java 7新特性。 - **Servlet ...
在本例中,“2k5_2203.json”可能表示一个包含2005年或与2005相关的2203个书源的数据文件。"2k5"可能是年份的缩写,"2203"可能是书源的数量或者某种编号系统。 在IT领域,处理JSON文件时通常会用到以下知识点: 1....
这款游戏是2005年的作品,对于初学者来说,它提供了一个良好的学习平台,帮助理解Java GUI编程以及游戏逻辑的设计。 在Java中,Swing是一个用于构建桌面应用的图形用户界面(GUI)的库。它是Java Foundation Classes ...
JMS,全称为Java Message Service,是一种Java平台上的标准接口,用于在分布式环境中实现异步的消息传递。在这里,"JMS金山快译"可能是指软件采用了JMS技术来处理后台服务,如翻译任务的调度和处理,使得软件能够...
它由Doug Cutting和Mike Cafarella创立,于2005年捐赠给Apache基金会。Hadoop的设计目标是处理大规模数据集,具有高可扩展性、可靠性和高效性等特点。 Hadoop架构 Hadoop的架构主要由四个部分组成:HDFS(Hadoop ...
到了2005年3月,Hibernate 3的发布进一步巩固了其在ORM领域的领导地位。 #### 对象-关系映射基础 对象-关系映射是Hibernate的核心能力之一,它将面向对象的数据模型与关系型数据库中的表结构进行无缝对接。通过...
这个压缩包文件“2005~2019历年软件设计师真题详解(word+pdf).zip”包含了从2005年至2019年间的软件设计师资格考试的历年真题及其详细解析,旨在帮助备考者充分理解和掌握考试的重点与难点。通过深入学习这些资料...
GB18030编码的文件需要使用相应的读取和写入方式,以避免乱码问题。 6. **编程实现**:在编程语言中,如Python、Java等,有专门的库函数或API用于处理GB18030编码,如Python的`codecs`模块,Java的`Charset`类等。 ...
用户可以通过拖拽活动、设置属性、编写表达式等方式来创建复杂的自动化流程,实现业务流程的高度定制。 #### 3. 强大的集成能力 UiPath 支持与多种系统和应用的集成,如 ERP、CRM、数据库等。用户可以通过 UiPath ...
这个项目始于约 2005 年,至今已有 9 年的历史,尽管年代久远,但在当时,它可能是为了解决自动化测试中数据管理和断言的一系列问题。 在测试领域,数据驱动测试是一种常见的方法,它允许测试人员将测试用例的数据...
- **脚本运行时间**:根据2005年的比较,Watir的脚本执行速度通常比SilkTest快,但这主要取决于具体的应用场景和脚本的编写方式。 - **可靠性**:SilkTest因其成熟度高而被认为更加可靠,尤其是在处理复杂界面时。...