`

Java 常用API的运用,效率及技巧八

    博客分类:
  • java
 
阅读更多

8ResourceBundle, Properties

ResourceBundle开发一个项目, 配置文件是少不了的, 一些需要根据环境进行修改的参数, 都有得放到配置文件中去, Java中一般是通过一个properties文件来实现的, 这个文件以properties结尾。 内部结构是二维的, key=value的形式存在。 如下:

options.column.name.case=1

options.column.bean.serializable=1

options.column.bean.defaultconstructor=1

options.column.method.setter=1

options.general.user.version=1.0

database.connection[0]=csc/csc@localhost_oci8

database.connection[1]=cscweb/cscweb@localhost_thin

 

ResourceBundle用来解析这样的文件, 它的功能是可以根据你的Locale来进行解析配置文件, 如果一个产品需要进行多语言支持, 比如在不同语种的系统上, 会显示根据它的语言显示相应的界面语言, 就可以定义多份的properties文件, 每个文件的key是一样的, 只是value不一样, 然后在application起动的时候, 可以判别本机的Locale来解析相应的properties文件。 Properties文件里面的数据得要是Unicode jdk下面可以用native2ascii这个命令进行转换。 例: native2ascii Message.txt Message.properties 会生成一个Unicode的文件。

 

Properties: Properties这个类其实就是从Hashtable继承下来的, 也就是说它是一个散列表, 区别在于它的keyvalue都是String型的, 另外也加了几个常用的方法:

Ø  String getProperty(String key)  取得一个property

Ø  String getProperty(String key, String defaultValue)  property 如果不存在则返回defaultValue

Ø  void list(PrintStream out)  out输出所有的properties

Ø  void list(PrintWriter out)

Ø  Enumeration propertyNames()  将所有的property key名以Enumeration形式返回。

Ø  Object setProperty(String key, String value) 设置一个property

 

ResourceBundleProperties一般结合起来使用。 它们的用法很简单, ResourceBundle解析出来的keyvalue然后放至到一个静态的Properties成员变量里面去, 然后就可以通过访问Properties的方法进行读取Property 下面给个简单的例子:

 

public class PropertyManager implements Serializable {
	
	/** 定义一个静态的Properties变量 */
	private static Properties properties = new Properties();
	
	/**
	 * 通过一个类似于类名的参数进行Property文件的初期化
	 * 比如现在有一个文件叫Message.properties, 它存放在
	 * ejb/util下面并且, 这个目录在运行的classpath下面
	 * 则in就为ejb.util.Message
	 *
	 */
	public static void init(String in) throws MissingResourceException {
	    ResourceBundle bundle = ResourceBundle.getBundle(in);
	    Enumeration enum = bundle.getKeys();
	    Object key = null;
	    Object value = null;
	    while (enum.hasMoreElements()) {
	        key = enum.nextElement();
	        value = bundle.getString(key.toString());
	        properties.put(key, value);
	    }
	}
	
	/**
	 * 取得一个Property值
	 */
	public static String getProperty(String key) {
		return properties.get(key);
	}
	
	/**
	 * 设置一个Property值
	 */
	public static void setProperty(String key, String value) {
		properties.put(key, value);
	}
}

 

不过现在的Java产品中,越来越倾向于用XML替换Properties文件来进行配置。 XML配置具有层次结构清楚的优点。

 

分享到:
评论

相关推荐

    java学习的常用API

    Java学习的常用API是开发者日常编码和学习过程中不可或缺的参考资料,尤其对于初学者,理解并掌握这些API至关重要。本资源集合了多个领域的API文档,包括Struts2、Spring、Hibernate、MySQL、Oracle以及一些基础技术...

    javaapi合集

    对于开发者来说,深入理解和熟练运用Java API是提高编程效率和编写高质量代码的关键。通过阅读JDK_API_1_6_zh_CN.CHM这份中文参考文档,开发者可以详细了解到每个类的功能、方法的使用以及参数的含义,从而更好地...

    JAVA初学者 第6到第8章(接口,异常,常用)

    在"JAVA初学者 第6到第8章"的学习资料中,你将深入理解这两个主题,并了解一些常用的Java编程技巧。 首先,让我们来探讨接口。在Java中,接口是一种完全抽象的类型,它只包含常量和抽象方法的声明,不包含任何实现...

    java 常用工具类

    以上就是关于"java 常用工具类"的一些关键知识点,了解并熟练运用这些工具类可以显著提高我们的编程效率,减少代码量,同时使得程序更易于理解和维护。通过阅读博文链接中的内容,可以深入学习和掌握更多实用技巧。

    Java常用方法大全

    以上仅是Java常用方法的一小部分,实际上Java API包含数千个方法。通过深入学习和实践,你可以掌握更多高效编程技巧,提升自己的编程能力。在实际工作中,结合《Java常用方法大全》这样的参考资料,可以随时查阅和...

    java常用正则表达式(转)

    这篇博客“java常用正则表达式(转)”可能详细介绍了Java如何使用正则表达式进行各种操作。虽然没有具体的描述内容,但我们可以从标题和标签中推测,这篇博客可能涵盖了以下几个方面: 1. **正则表达式基础**: -...

    Java程序设计技巧1001例

    "Java程序设计技巧1001例"这个资源显然旨在帮助开发者深入理解和运用这些技巧。以下是一些重要的Java编程技巧,涵盖了基础到高级的各个方面。 1. **异常处理**:在Java中,使用try-catch-finally语句块来处理异常是...

    Java编程模式与范例:基础开发技巧

    10. **标准库和API**:Java的标准库提供了大量预定义的类和方法,如日期时间API、网络编程API、XML处理等,熟悉这些API能极大地提高开发效率。 通过对这些知识点的学习和实践,开发者不仅能掌握Java的基础开发技巧...

    Java 的常用包与数组的复制与排序26

    在Java编程语言中,了解和熟练使用常用的包以及...理解并熟练运用这些知识,将有助于提升Java编程的效率和质量。在实际开发中,还会涉及到更多高级特性和技巧,如多线程、并发控制、设计模式等,都需要不断学习和实践。

    Java编程技巧.pdf

    - 在处理集合时,可以利用Java 8的流(Stream) API进行更简洁的编程,例如使用`Collectors.groupingBy()`或`Collectors.toMap()`创建映射关系。 - 使用`Objects.requireNonNull()`检查对象是否为null,避免因为空...

    java程序设计技巧1001例

    在Java程序设计的世界里,掌握各种技巧是提升编程效率和代码质量的关键。"Java程序设计技巧1001例"是一本深入浅出的指南,它涵盖了从基础到高级的各种编程实践,旨在帮助开发者们更好地理解和运用Java语言。在这个...

    Java语言程序设计-进阶篇第8版2011

    由于提供的部分内容并不包含具体的章节或内容概述,我们将基于书名及一般进阶Java书籍会涵盖的主题来展开讨论。 ### Java语言基础回顾 在进入进阶篇之前,本书可能会简要回顾Java的基础知识,确保读者对于Java的...

    JAVA2程序设计实务入门

    这些API的使用是Java编程实践中的常见任务,理解和熟练运用它们能大大提高开发效率。 在描述中提到“实务入门”,这意味着本书不仅会讲解理论知识,还会结合实际案例,提供代码示例和练习,帮助读者将所学知识应用...

    Java常用框架实战教程,包含Activiti,Dubbo

    Java编程语言在IT行业中占有重要地位,而Java开发者在日常工作中常常会接触到各种框架,以提升开发效率和软件质量。本教程重点聚焦于两个著名的Java框架:Activiti和Dubbo,它们分别在业务流程管理和分布式服务领域...

    Java手机短信项目源码Java实用源码整理learns

    3. **Java框架**:Spring、MyBatis、Hibernate等,是企业级开发中常用的工具,掌握它们可以提高开发效率。 4. **Java最佳实践**:包括代码规范、设计模式、重构技巧等,帮助写出更高质量的代码。 5. **开源社区**...

    JAVA范例开发大全

    函数式编程在Java 8之后得到了加强,你可以通过阅读本书了解Lambda表达式、Stream API和方法引用来简化代码,提高代码的可读性和效率。 网络编程也是Java的一大特色,书中可能会涵盖Socket编程,让你学会如何创建...

    Java程序设计教程第五版教材(美国)上的例题

    Java程序设计是编程领域中的重要一环,尤其对于初学者来说,掌握其基本概念和实践技巧至关重要。"Java程序设计教程第五版教材(美国)"是一本面向初学者的指南,旨在帮助读者深入理解Java编程语言,并通过实际例题来...

    平安Java考试题库

    8. **JVM**: 对Java虚拟机(JVM)的理解,包括内存管理(堆、栈、方法区)、垃圾回收机制、类加载过程以及性能优化技巧,对于写出高效且稳定的Java应用至关重要。 9. **Spring框架**: Spring是Java企业级应用中最...

Global site tag (gtag.js) - Google Analytics